什么是最酷的Ruby on Railsfunction,为什么选择它?

在我提出这个问题之前,我在SO上查看了“Ruby on Rails”的搜索结果。 找不到多少,但以下( 在此页面上找到 )让我很开心

就个人而言,我开始使用.html,转移到php,尝试ruby(讨厌它),发现Python / DJango ..从此以后一直很开心。

现在这是交易。 我还没有个人学习Ruby on Rails的意图,但这是我在Uni做的小组演示的主题(我的队友选择了RoR主题)。 对学生提出家庭作业类型问题的怨恨的人应立即离开。

这个问题适用于发现它很棒的RoR人。 我希望找到那些声称RoR最好的人(在RoR网站上找到令人惊叹的推荐书的作者)。 是什么让RoR如此出色? 在你离开大学学位之前,你希望今天的年轻人能够发现什么呢? 尝试建议一些可能在他们的脑海中产生的东西,并且可能在离开Uni后以RoR的方式导航它们。

你的答案不仅有助于我的演讲,而且可能成为许多人的启蒙之源。

三年前我在博客上详细介绍了为什么我喜欢Rails ,但对我而言,第一个很酷的function是它使开发Web应用程序变得轻松有趣。

  • ActiveRecord的动态查找器:

    Person.find_by_name_and_company_id('Jorge Luis Borges', 42) 
  • rjs,在ruby中编写javascript:

     page['element_id'].insert_html :bottom, :partial => 'comment' 
  • ActiveRecord的范围

     class Shirt < ActiveRecord::Base named_scope :red, :conditions => {:color => 'red'} named_scope :dry_clean_only, :joins => :washing_instructions, :conditions => ['washing_instructions.dry_clean_only = ?', true] end 

调用Shirt.red将查询带有“color =’red’”条件的数据库这个很酷的部分,如果你组合了多个范围,例如:

  Shirt.red.dry_clean_only 

它将构建一个查询,具有满足两个范围所需的所有条件和连接。

  • ActiveRecord的迁移,能够使用活动记录管理数据库结构和数据,就像在应用程序的代码中一样,使用最少的SQL。

工具是解决问题。 无论你是在谈论木工工作者的工具还是程序员的工具,都没关系。 令我印象深刻的是Rails(现在仍然如此),它是从用于构建真实世界网络应用程序的框架中提取出来的,并且在使用它构建真实世界的网络应用程序之后,人们一再改进它。 这不仅仅是学术活动。

它解决的一些具体问题:

  • 快速入门。 如果您希望快速获得Web应用程序,那么您可以选择哪个更好的选择,而不是指定现有目录结构的框架(一个基于MVC的框架),包含大量代码生成器,以及已为您预先选择的选项JavaScript库,测试支持,ORM等组件。您可能不同意所有选择,但您可以假设它们并拥有适用于80%或更多项目的内容,如果您有偏好,则可以在以后更换某些内容。

  • 长期可维护性。 迁移为您提供了在代码更改时向前移动数据的方法,这在任何实际应用程序中都会发生,但大多数框架根本不考虑这一点。 将应用程序的所有部分分离到已经设置了测试区域,数据库,配置等的目录层次结构中,这再次有助于项目的长期维护。

  • 减少人为错误。 配置文件为您提供了额外的人为错误机会。 逻辑约定,一旦学会可以避免错误,如配置文件中的经典错误输入文件名或类名错误。

  • 认识到不同的发展模式。 Rails已经内置了对开发与测试与生产之间设置不同设置的想法。 真正的应用程序也有这个,但通常围绕它们的框架不适应它,你最终必须交换配置文件以实现相同的效果(参见上面的人为错误)。

  • 好的做法。 我上面提到的一些事情包含并鼓励良好的编程实践(MVC,标准化的项目布局等),但Rails通常明确地鼓励它们而不仅仅是隐含的。 为了certificate这一点,你需要看看它对测试驱动开发的内置支持。

举几个项目:

  • 大型开发人员社区(不是说python没有)
  • 约定配置岩石
  • 可以与JRuby / Warbler一起使用,以便在Java应用程序服务器上运行rails。 在尝试将Enterprise拖入21世纪时非常重要(Django可以与Jython一起使用以处理应用程序服务器,但不太成熟)。
  • MVC框架有助于保持应用程序的结构化。
  • 脚手架和发电机,以使您的项目移动。

Rails不会尝试成为Web应用程序的唯一方法,这不是意图。 它满足一系列特定需求。

这不是与Python的比较 – 它是我喜欢的事物的一般列表。

  • 我编写的代码比在Java中少得多
  • ……我做的代码非常易读且易于维护
  • 我很少需要考虑代码存在的位置或如何处理常见任务 – 它只是有它的位置(例如迁移是内置的)
  • 您最终不会在一个项目上使用许多不同的技术(Java,EJB,Hibernate,JSP,SQL DDL,Ant,XML,taglibs)
  • 解释而不是编译可以节省大量的开发时间

对我来说,其中一个主要原因是它让网络编程变得有趣。 突然间,事情变得简单而且触手可及。 你不需要几个月的代码处理,也不需要编写大量的代码。 只需几行就可以完成一些非常棒的事情。

感觉很好:)

老实说,我喜欢Django的设计,而不是rails,但我喜欢ruby而不是python。 这是个人的事情,因为我知道很多人都有相反的感觉,但我觉得ruby是我用过的最优雅的语言之一。

我使用Rails的主要动机是ruby。 在我找到ruby之前我触及了很多语言,我从来没有觉得我对它们有任何好处。 当我遇到ruby时,一切都很有意义。 这是一种美丽的语言; 易于学习但很难掌握。

我使用rails是因为它适合我作为web开发人员的需求而且非常丰富。