我目前正在与Groovy和Grails合作。尽管Groovy基本上很简单,因为它基本上是Java,但我不能说我讨厌Grails。我读到Groovy对Grails而言就像Ruby对Ruby on Ruby一样,但这是什么意思?
解决您对隐喻的困惑(尽管在您的问题下已用其他方式回答了此问题:]
Groovy对Grails而言就像Ruby对Ruby on Rails一样,但这是什么意思?
[Grails是建立在Groovy编程语言之上/之上的Web框架,与Groosy所做的事情一样,Rails(Ruby的Web框架)也为Ruby做过。
“处于轨道上是什么意思?
答案取决于这些Web框架的本质。
这些Web框架(Grails和Rails)是在“约定之上的配置”的前提下构建的,这意味着使用通用约定来开发Web应用程序可以提高生产率和更可维护的应用程序(这是总的概括)。通过定义一个约定并遵守约定,您将发现您的应用程序易于生成并且可以快速启动和运行。
这对我来说就像火车一样,在铁轨上意味着什么。当开发一条新的火车路线时,不必担心重新设计火车从一个地方到另一个地方的方式,几十年来,一个单一的惯例已解决了这一问题:铁轨。就像火车路线上的轨道从两个位置限制路径一样,基于约定的Web框架使用约定来提高应用程序开发人员的灵活性,以便他们可以专注于其应用程序的基本业务问题。
Web框架约定的一个主要好处是,Web框架现在可以假设应用程序的某些层如何连接在一起。在Rails中,通常可以假定,如果一个人的数据库表具有复数名称,则映射到该表的ActiveRecord类将具有对应的单数名称。因此,Rails代码生成器可以使用数据映射信息来生成数据访问代码,例如动态查找器,迁移,延迟加载的关联遍历等。在基于配置的框架中,这种数据访问代码很难手工编写。 >
尽管Rails确实遵循这些原则,但是“ Ruby on Rails”是Web框架的名称。仅此而已。它不是在指任何特定的“过时”,它只是一个品牌名称,就像麦当劳是一个品牌名称一样。
[许多人提到了使Rails / Grails成为自己的东西的技术。一些人还提到“约定之上的配置”是Rails / Grails中的“ rails”。这越来越接近事实。但这只是Rails广泛哲学的一个特征,即opinionated software
[我认为一个努力成为“ rails-like”的框架指的是几件事情:
模型级别:AR模式的ORM(而不是数据映射器),迁移或某种自动化的模式和模型层管理,在应用程序中处理外键(不在数据库模式中,也不使用存储过程或纯DBMS逻辑)
Rails是用于开发具有数据库后端的Web应用程序的框架。我认为这个名字最初是一个文字游戏。火车可以将您带到[[really快速的某个地方,但仅限于铁轨所在的地方。
我不知道那是铁杆人们得到这个名字的地方,但这就是我的解释方式。
Ruby on Rails是一个突破性的webapp框架。请参阅上面有关自有意见的软件的出色解答。