我目前正在使用Groovy和Grails进行工作。由于Groovy基本上就是Java,所以它相当直观易懂,但是我不能说我完全理解Grails。我读到过一句话,“Groovy对于Grails就像Ruby对于Ruby on Rails一样”,但这是什么意思呢?
我目前正在使用Groovy和Grails进行工作。由于Groovy基本上就是Java,所以它相当直观易懂,但是我不能说我完全理解Grails。我读到过一句话,“Groovy对于Grails就像Ruby对于Ruby on Rails一样”,但这是什么意思呢?
有几个人提到了Rails/Grails的技术细节。也有几个人提到“约定优于配置”是Rails/Grails中的“rails”。这更接近事实。但这只是Rails更广泛的哲学中的一个特征,即“有主张的软件”概念。
有主张的软件不仅仅可以用技术术语来描述;这是一种哲学; 一种价值观; 态度。无论你喜欢还是讨厌,那就是Rails核心所在。
以下是Rails创始人David Heinemeier Hansson在2005年的采访摘录:
Rails是有主张的软件。它摒弃了将旧版软件理念放在主要位置的做法。其中之一是灵活性-我们应该尝试容纳尽可能多的方法,不应该对一种开发形式评头论足。好吧,Rails做到了,我相信这就是它成功的原因。
使用Rails时,你可以在基础建设层面上牺牲灵活性以换取在应用层面上的灵活性。如果你愿意沿着我在Rails中嵌入的黄金路径工作,你将获得巨大的生产力奖励,从而使你能够更早、更好地在应用程序层面上做更多的事情。
还有一次后续的采访进一步探讨了该主题。
所谓“on rails”是指“有主见”,这也是它被命名的原因。加上“Ruby on Rails”是押韵的,这是任何记者或作家会告诉你的,这是吸引人们注意力的必定方法。
我认为一个致力于“类Rails”框架的目标包括以下几点:
模型层:采用AR模式的ORM(而不是数据映射器),自动迁移或管理模式和模型层,处理应用程序中的外键(而非数据库模式,也不使用存储过程或纯DBMS逻辑)
鼓励TDD:自动生成单元测试的框架
命名规则连接数据库表名、模型名称、控制器和视图动作以及HTML模板
简化路由识别和路由生成方案
强调REST架构
与Ajax库集成:RJS、Prototype和Scriptaculous
“Being on rails”意味着您无法控制自己的方向。这意味着,您只能按照已经铺设好的铁轨行驶。任何试图去那些铺设者没有预料到的地方都会导致沮丧。
这是一个汽车术语。当一辆车的操控表现非常好时,就会说它“转弯如履平地”(即它能给你出色的控制感)。
我不知道铁路人员是否因此得名,但这就是我的解释。
我不同意其他评论中“Rails是一种关于约定优于配置的哲学”等观点。
虽然Rails确实遵循这些哲学,但“Ruby on Rails”是一个Web框架的名称。仅此而已。它并没有指涉任何特定的“on-railsness”,它只是一个品牌名称,就像麦当劳是一个品牌名称一样。
如果其他人编写了另一个框架并将其称为“Python on Rails”,那么就会有另一个品牌名称。如果没有,那么“XYZ on rails”只是让人们感到困惑。
Ruby和Groovy是编程语言。
Ruby on Rails是一个开创性的webapp框架。请参见上面关于有主见软件的优秀答案。
历史上,一个Groovy webapp框架的工作标题是。但是RoR社区反对了。团队选择了代替。