我目前正在使用 Groovy 和 Grails。虽然 Groovy 非常简单,因为它基本上是 Java,但我不能说我对 Grails 了如指掌。我读到 Groovy 之于 Grails 就像 Ruby 之于 Ruby on Rails,但这是什么意思呢?

有帮助吗?

解决方案

解决你对这个比喻的困惑(尽管在你的问题下已经回答了其他的话):

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

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


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

这个问题的答案归结为这些网络框架的本质。

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

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

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

其他提示

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

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

这是2005年的一个例外情况采访Rails的创始人David Heinemeier Hansson

  

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

     

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

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

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

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

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

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

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

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

  • 强调 REST 架构

  • 与 ajax 库集成:RJS,原型和脚本化

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框架的名称。没有更多,没有更少。它并不是指任何特定的“轨道上”。关于它,它只是一个品牌名称,就像麦当劳是一个品牌名称一样。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top