先說一下蔗牡,在寫這篇文章的時候我剛開始閱讀 rails 的源碼臂容,所以并不能以一個過來人的身份給出什么諄諄教導(dǎo),這只是一個菜鳥探索過程的記錄范删,也許有的想法幼稚蕾域,甚至謬誤,但是又有什么關(guān)系呢到旦。
在此之前旨巷,我已經(jīng)寫過一段時間的 ruby 代碼,照著 *ruby on rails tutorial* 教程寫過兩三遍代碼添忘,看過兩遍 rails 官方指南采呐,以及讀過我能找到的一些 rails 的書籍,包括:*the rails 4 way*昔汉、*rails 4 in action* 等懈万。也能用 rails 寫一些簡單的應(yīng)用,但一直感覺水平浮于表面靶病。rails 的眾多魔法不知道背后是怎么運行的,心里充滿困惑口予。好奇心驅(qū)使娄周,我想弄明白背后的原理。
諸如下面這些問題一直困擾著我:
當我在命令行敲下`rails s`的時候發(fā)生了什么沪停?一個 rails app 意味著一個駐留在內(nèi)存中的進程煤辨,還是僅僅只是一堆等待解釋執(zhí)行的靜態(tài)代碼?一個客戶端請求是如何進入 rails木张,經(jīng)過什么樣的處理众辨,最終又是怎樣返回客戶端的?rails 的 config 都有哪些配置可以用來設(shè)置舷礼?類似 device 這樣的 gem 是如何與 rails 結(jié)合在一起的鹃彻?
這樣的問題還有很多,可能一時想不起來了妻献,可能以后也還會有新的問題冒出來蛛株?閱讀源碼也許可以幫我搞清楚這些問題,消除神秘感育拨。除此之外谨履,閱讀 rails 源代碼至少還可以提高 ruby 語言和元編程的編碼水平,增加閱讀源代碼的經(jīng)驗熬丧。
好吧笋粟,這就是為什么我要讀源代碼的大概的原因。