我目前正在使用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应用程序的框架.我认为这个名字本来就是一个文字游戏.火车可以把你带到一个非常快的地方,但只能在铁轨去的地方.