最近我经常使用Ruby on Rails进行许多项目,我认为研究Rails源代码并真正了解事情在底层是如何运作的会非常有趣。我认为这将是一个很好的学习经验,并且可能会增强我编写Rails应用程序的能力。
有人有关于如何入门的提示吗?应用程序从Rails源代码的哪里开始执行?也许如果我从那里开始,我就可以看到所有东西是如何加载并且总体上是如何工作的。
最近我经常使用Ruby on Rails进行许多项目,我认为研究Rails源代码并真正了解事情在底层是如何运作的会非常有趣。我认为这将是一个很好的学习经验,并且可能会增强我编写Rails应用程序的能力。
有人有关于如何入门的提示吗?应用程序从Rails源代码的哪里开始执行?也许如果我从那里开始,我就可以看到所有东西是如何加载并且总体上是如何工作的。
我认为这将是一个极好的学习经历,而且可能会增强我的Rails应用程序编码能力。
这是个好主意!
你应该从GitHub上的Rails源代码(这里是2.3分支下的ActiveRecord)开始。如果你正在使用Rails,则可能熟悉Rails本身由几个不同的Gem组成:ActiveRecord,ActiveSupport等。
立即跳入代码中可能并不简单。我建议你两种替代方法来开始深入挖掘Rails代码库:
养成一种习惯,每次使用一个方法、helper或Rails命令时,就跳到源代码中查找该方法并阅读它。尝试理解其上下文、工作原理和使用的方法/库。然后,每当方法A使用方法B时,开始回溯查找方法B。设定一个反向查找的限制,例如2个上级级别,以便不会从link_to
helper开始查找整个框架。
而不是从代码库的顶部开始,选择你最熟悉的库。如果你没有任何偏好,可以从ActiveSupport开始。ActiveSupport是Rails工具包。它提供了大量扩展,可以在Rails代码甚至Ruby程序中使用。
在你能够将所有信息组合起来并理解单个Rails应用程序如何工作之前,这需要一段时间,但绝对值得努力。
作为一则小提示,几个月前我开始了一个系列文章叫做“深入理解Ruby on Rails”,你可能会对它感兴趣。可以点击此处查看。这里有一份有关Rails(3.0)初始化过程的指南:http://ryanbigg.com/guides/initialization.html
请注意,此文档是英文原版,您可以使用翻译工具进行阅读。http://guides.rubyonrails.org/rails_on_rack.html
对于当前的主分支,您需要边缘指南。http://edgeguides.rubyonrails.org/rails_on_rack.html
本文帮助你理解Rails和Rack之间的关系。一旦你理解了Rack,就可以找到请求进入Rails框架的入口点。(Rails实现了Rack应用程序接口)怎么样?