繁体   English   中英

编程语言“在轨道上”意味着什么?

[英]What does it mean for a programming language to be “on rails”?

我目前正在使用Groovy和Grails。 虽然Groovy非常简单,因为它基本上是Java,但我不能说我是格里尔斯。 我读到Groovy是Grails,因为Ruby是Ruby on Rails,但这意味着什么?

为了解决你与这个比喻的混淆(尽管在你的问题下已经回答了其他的话):

Groovy是Grails,因为Ruby是Ruby on Rails,但这意味着什么?

Grails是一个构建在/使用Groovy编程语言的Web框架,为Groovy做同样的事情,即Rails(Ruby的Web框架)为Ruby做的事情。


“在轨道上”是什么意思?

对此的答案归结为这些Web框架的本质。

这些Web框架(Grails和Rails)构建在“约定优于配置”的前提下,这意味着使用通用约定来开发Web应用程序可以带来更高的生产力和更可维护的应用程序(这是一个粗略的概括)。 通过定义约定并坚持使用,您会发现应用程序易于生成并快速启动和运行。

就像火车一样,这对我来说意味着“在轨道上”。 当一条新的火车路线开发出来时,不用担心重新发明火车从一个地方到另一个地方的方式,它已经通过一个单一的公约解决了几十年:铁路。 正如列车路线上的轨道限制其从两个位置的路径一样,基于约定的Web框架使用约定来实现应用程序开发人员的灵活性,以便他们可以专注于应用程序的基本业务问题。

Web框架约定的一个主要好处是Web框架现在可以假设应用程序的某些层如何连接在一起。 在Rails中,通常可以假设如果一个数据库表具有复数名称,则映射到该表的ActiveRecord类将具有相应的单数名称。 因此,Rails代码生成器可以使用数据映射信息来生成数据访问代码,例如动态查找器,迁移,延迟加载的关联遍历等。基于配置的框架中的这种数据访问代码对于手动编码是费力的。

有几个人提到了Rails / Grails是什么的技术细节。 有些人还提到“约定优于配置”是Rails / Grails中的“rails”。 这越来越接近真相。 但这只是Rails更广泛的哲学的一个特征,它是固定软件的概念。

意见软件不能仅以技术术语描述; 这是一种哲学; 一种精神; 一种态度 喜欢它或讨厌它就是Rails的核心。

这是2005年对Rails创建者David Heinemeier Hansson采访的例外情况:

Rails是自以为是的软件。 它避免将旧的软件理想置于主要位置。 其中一个理想是灵活性 - 我们应尽量采用尽可能多的方法,我们不应该对一种发展形式的判断而不是另一种形式的判断。 好吧,Rails确实如此,我相信这就是它的工作原理。

使用Rails,您可以在基础架构级别交换灵活性,以在应用程序级别获得灵活性。 如果您乐意沿着我在Rails中嵌入的黄金路径工作,那么您在生产力方面获得了巨大的回报,这使您可以在应用程序级别上做得更多,更快,更好。

还有一个后来的采访进一步探讨了这个主题

因此,“在轨道上”是一种“自以为是”的隐喻,这就是它被命名的原因。 任何记者或作家都会告诉你,“Ruby on Rails”这个事实是一种可靠的方式,可以引起人们的注意。

我认为一个努力成为“类似轨道”的框架指的是几件事:

  • 模型级:AR模式的ORM(而不是数据映射器),迁移或一些自动化模式和模型层管理,处理应用程序中的外键(不在数据库模式中,也不使用存储过程或纯DBMS逻辑)

  • TDD鼓励:自动生成单元测试的骨架,

  • 连接数据库表名和模型名,控制器和视图操作以及HTML模板的命名约定

  • 简化的路线识别和路线生成方案

  • 强调REST架构

  • 与ajax libs集成:RJS,原型和scriptaculous

Rails是一个使用数据库后端开发Web应用程序的框架。 我认为这个名字本来就是一个文字游戏。 火车可以把你带到一个非常快的地方,但只能在铁轨去的地方。

在轨道上意味着你无法控制你的去向。 这意味着,你只能走到铺设铁轨的地方。 任何试图走到轨道上的人都没想到你去的地方会导致沮丧。

这是一种汽车表达方式。 当一辆汽车处理得非常好时,它被称为“像在轨道上行驶一样的角落”(即它可以为您提供出色的控制)。

我不知道是否这就是铁杆人员得到这个名字的地方,但这就是我解释它的方式。

简短而简单的回答:约定优于配置。

如上所述,Rails和Grails为Web应用程序开发提供了约定 - 以某种方式命名您的作品并将它们放在正确的位置使应用程序默认工作,无需额外配置。 如果您想偏离惯例,可以在那里配置自己的方式。

Ruby和Groovy是语言。

Ruby on Rails是一个突破性的webapp框架。 查看上述固定软件的优秀答案。

作为历史问题,Groovy webapp框架的工作标题是Groovy on Rails 然而,RoR社区反对。 该团队选择了Grails

这是一个比喻,我几乎说需要解释。 无论如何,这是Ruby on Rails所做的非常好的比喻。 它使得(转到)常见的东西变得非常容易,即测试,验证,部署,MVC。

我不同意其他评论“on rails是一种关于约定优于配置的哲学”等等。

虽然rails确实遵循这些理念,但“Ruby on Rails”是Web框架的名称。 没有更多,没有更少。 它并不是指任何特定的“on-railness”,它只是一个品牌名称,就像麦当劳是一个品牌名称一样。

如果其他人编写另一个框架并将其称为“Python on Rails”,那么将会有另一个品牌名称。 如果没有,“轨道上的XYZ”只意味着人们感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM