閱讀前的準(zhǔn)備

如果你已經(jīng)打算閱讀 rails 源代碼了,你一定已經(jīng)安裝好 ruby 和 rails 了,可能和我一樣你也是用 rvm 來安裝和管理 ruby 版本的。

必要的 ruby 語言知識

除了掌握基本的 ruby 語言外,還需要掌握基本的元編程知識,讀過<ruby 元編程>最好,但這不是必須的,你需要熟悉下面這些方法:

  • 類方法的定義,用這種方法的好處是比較集中,方便閱讀,你也可以少敲很多 self
class << self
  def foo
    # method body
  end
end
  • 幾個重要的方法
    class_eval
    instance_eval
    method_missing
    extend
    extended
    included
    inherited
    可能還有其他方法,我一時想不起來了,或者我還沒有遇到,畢竟我也才開始閱讀 rails 源碼。遇到不清楚的查 ruby 庫文檔就可以了。
我們要讀的代碼

首先要分清楚這么幾個概念:rails 包源代碼、rails 源代碼、rails 應(yīng)用代碼,我們主要讀的是后兩個。

  • rails 包源代碼
    rails gem 的開發(fā)包,是從 github 上直接 git clone 下來的代碼,可以隨便看看,但不是我們將要閱讀的目標(biāo)。
  • rails 源代碼
    這是我們將要閱讀的代碼,通過 gem install rails安裝后,rails源代碼及其依賴的 gem 源代碼都保存在 gem 的安裝目錄里,它的目錄代碼和開發(fā)包是很不一樣的。
  • rails 應(yīng)用代碼
    當(dāng)我們運(yùn)行了rails new foo之后,rails 生成的 app 框架,應(yīng)用的邏輯代碼。
rails 安裝目錄

通過運(yùn)行 gem environment gemdir rails 可以查看 rails 的安裝目錄,在我的機(jī)器上是 ~/.rvm/gems/ruby-2.4.0/gems/ 。你可以用一個你趁手的編輯器打開它,vim 是一個很好的選擇。

ruby 和 rails api 查詢

ruby 核心庫
ruby 標(biāo)準(zhǔn)庫
rails API

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容