学习Ruby on Rails对Grails有什么好处?

时间:2020-03-05 18:38:26  来源:igfitidea点击:

我的公司正在开始Grails的发展。这样做的原因是,当前的开发人员沉迷于Java,但感到某些将来的Web开发项目需要MVC风格的语言。就个人而言,我来自设计/可用性领域,但是当我承担更多的"前端"职责时,我开始感到有必要更深入地学习语言,以便我可以编写一些逻辑代码,尤其是前端我的用户界面和内容的代码。

我一直在尝试亲自接触Python / Django,但是从来没有花太多时间在上面。现在,我的公司正在"跳入" Grails,我购买了"使用Rails进行敏捷Web开发(第三版Beta)",并且我开始涉足RoR。我仍然希望将来或者从侧面学习Python,但是我最大的问题是:

  • 我是否应该学习RoR,并在我的"投资组合"中使用一种更通用的语言,同时知道我的RoR知识也将对我的Grails需求有用?

-或者-

  • 我是否应该跳过RoR并专注于学习我很快就要工作的Grails,而稍后再学习RoR / Django(Ruby / Python)?

基本上,问题围绕Grails在非公司环境中的有用性以及Rails和Grails之间的相似性。 (并且,与此同时,为了避免对Python与Ruby的百年讨论(在Rails上:))

解决方案

回答

我们应该只跳过RoR并专注于学习工作所需的Grails。

回答

只需跳过RoR。确实没有很多类似的东西(除了名字)

我当然相信,如果我们打算使用Grails进行认真的开发,那么对Java有足够的了解,再加上对动态语言进行编程的丰富经验,就绰绰有余了。

仅比较视图(Grails中的标签库,RoR中的RHTML)和持久性内容(GORM与ActiveRecord)在核心方面太不同了,以至于花时间学习RoR的实质内容。只要深入Grails,我们就不会后悔。

编辑:错字。

回答

只是一个问题,是他们选择Grails的原因是因为Groovy在语法上比Ruby更接近Java,或者是因为他们想要访问Java?

如果是前者,那么我想说的是尝试着重于Grails,因为这将是我们要使用的。如果是后者,则可能要查看开发团队是否愿意使用JRuby。

我以前从未使用过Grails或者Rails,但是我以前曾经使用过Groovy和Ruby,作为一种语言,我认为Ruby更简洁,更一致,并且团队可能会更喜欢生产。作为一个平台,Rails已经发布了更长的时间并且受到了很多关注,因此我可以想象它是一个使用更多充实功能的更稳定的平台。

JRuby拥有对用Java编写的类的完全访问权限,因此这就是为什么我要考虑尝试使用Rails的原因。如果在决定时间来不及考虑,那么我想我们可以忽略此职位。

基本上,如果我们只想使用Java,则应该考虑使用JRuby,但是如果团队害怕像Java这样的非Java语法,则可以照常继续。

回答

我一直在学习RoR和Grails,后者更容易学习。

两种框架都具有相同的原理(敏捷,亲吻,干枯,鸭子打字等),但是Groovy语法……好极了,我们可以在眨眼之间学习和使用。

我真的觉得Grails比RoR的前途光明。

PD:以防万一,如果我们发现它有用,我的一所大学正在与Grails进行全职工作,并且有一个博客提供了一些技巧:

http://dahernan.net/search/label/grails

回答

乍一看,我们会认为它们是完全不同的故事,因为它们基于极其不同的语言(Ruby和Groovy)。

然后,阅读一些教程之后,我们将意识到它们具有相同的原理,脚手架,鸭式打字..以及最终的相同目标:
使敏捷编程变得可行。

如果我们已经对IoC和MVC这样的术语感到满意,那么我们会发现这些选项中的任何一个都简单易学。

回答

我会两者都学。它们都是新兴技术。学习RESTful编码是任何语言的真正好处。

我在工作中使用GRAILS,在辅助项目中使用RoR。我可以说RoR社区更大(我说的是RoR vs Grails,而不是RoR vs Java),并且非常有帮助。

简短的回答:它们很相似....可能会疼吗?

回答

@李维菲盖拉

一方面,Grails比Rails灵活得多。 Rails很难与旧版数据库一起使用,因为ActiveRecord具有太多的设计约束,许多旧版DB并没有遵循这些约束。其他的Grails可以使用标准的Hibernate映射,该映射可以适应范围更广的DB设计。

回答

Rails社区在宣传RoR方面一直非常积极,结果是树立了很高的期望,但并不总是能满足(编程人员的生产率很高,但是一旦部署就很难保证良好的性能)。

Grails被设计为Java的脚本继承者,而JRuby on Rails中使用的Ruby-Java集成则必须进行改进。

我建议我们坚持使用Grails。它可能没有与RoR一样的浮华,但这是一个务实的选择。我们可以提高生产率并重用现有的Java库。

回答

直接跳入Grails。我确定Ruby / Rails很好,但是在Groovy / Grails中也是如此。我推荐这本书。

http://beginninggroovyandgrails.com

记住勘误表是在线的。书中有两个错误。

http://beginninggroovyandgrails.com/site/content/errata

另外,请查看3分钟30秒的演示,该演示创建了第一个Grails应用程序。

http://grails.org/Grails+Screencasts

本教程将向我们展示基础知识。

http://grails.org/Quick+Start

回答

是的,Grails是必经之路。 RoR很好,但是它将我们与Ruby生态系统联系在一起。学习新框架或者语言的一部分工作是学习类库以及语言语法。如果同事都是Java类型,我们将更容易获得帮助和支持,因为他们都将使用与我们相同的语言。

学习一些Groovy和Java的另一个好处是,像GWT这样的Web框架将向我们开放。 Grails有一个GWT插件,作为前端开发人员,我们会喜欢它的易用性和跨浏览器的兼容性。

此外,至少有一家托管公司提供免费的Grails应用程序托管(http://www.mor.ph/),这意味着我们可以在无需付费的情况下以小数据量构建网站原型。

回答

我更喜欢Grails,而不是Rails,但学习Rails可以使我们拥有一个更加平衡的视角,并实际上使我们睁开了眼睛,忽略了Grails中可能发生的事情。

回答

我会说不,我也正在学习Grails,我也已经考虑过这一点,但是仅仅学习Grails就是一件很重要的事情,再加上学习Groovy(这很容易,但仍然必须学习正确吗?)等等。 ...所以学习Rails实在太多了。

回答

是的,如果我们比较grails和rails,我会选择grails(我在grails中开发了一些Intranet应用程序)。

但是Django优于两者,因为python是完美的选择。

回答

嗯,我不知道怎么说。有人可能会为此而ash惜我。

语言(Groovy和Ruby)

作为一种语言,我认为Ruby与Groovy相比更时髦。 Groovy的存在只是为了减轻Java程序员的负担,因为我们不需要学习太多的新语法。但是总的来说,我认为它不像Ruby那样时髦。在今年的JavaOne中,基于与会者的投票,Groovy不会成为值得学习的JVM语言,但是Scala才是首选。除此之外,Groovy的原始创作者本人也不相信自己最初创造的语言。

社区和职位空缺

至于社区,Grails社区并不像Rails那样大,尽管自从Spring收购以来,越来越多的人正在认真地使用它。与Grails相比,Rails在市场上有更多的职位空缺(也就是说,如果我们想投资寻找新工作)。

框架(Grails和Rails)

但是,作为框架,如果我们真的在乎可维护性并需要访问Java框架和旧版Java系统,那么Grails就是理想之选,因为它提供了对Java的更干净的访问。 Grails本身是基于几种流行的Java框架(Spring和Hibernate)构建的。 Rails本身的恕我直言像Ruby本身一样时髦,但是它的时髦会降低可维护性。 Matz自己更喜欢Merb而不是Rails 2,因为Rails在Ruby之上创建了DSL,这确实违反了Ruby的哲学。而且我认为,因为Rails本身是有针对性的,因此如果我们对创建者的看法不同,那么这可能不符合需求。

结论

因此,在情况下,请学习Grails,因为这是公司的共识(我们需要尊重共识),并且如果我们仍然想确保自己的工作。但是,如果我们想在将来获得新工作的机会,也可以花一些时间学习Rails和Ruby。

回答

我们可能还想看看Clojure,这是一种才刚刚开始流行的JVM语言。对于基于Java的公司而言,这可能是一个不错的选择,因为它与旧代码库兼容,并且具有许多现代创新。有一些不错的Web框架正在出现,包括Compojure。