? ? ? 學(xué)習(xí)Rails很久,其實已經(jīng)將官方的入門指南閱讀過N(N>10)遍了;自己動手寫的demo也不在少數(shù)了,當(dāng)然由于前端問題,總是不能滿意,最終都草草收尾;之前在一個小公司里面實習(xí)時候也做的是Rails的開發(fā)工作??偸且陨系膸追N經(jīng)歷一直在增加我閱讀Rails源代碼的興趣。
? ? ? 其實之前也試著讀過幾次Rails源代碼,每次都是以ActiveRecord這個庫作為入手點,可能是由于當(dāng)時Ruby功底的限制,總是不能堅持下去。
? ? ? 這次再次閱讀Rails源代碼,以Rails啟動流程這篇指南作為閱讀的指導(dǎo),將railties庫的源代碼閱讀了好幾遍。相對來說,收獲還是很大的。
? ? ? ?首先,以rails sever和rails ?console這個命令為起始點,徹底搞清楚了config文件夾下的配置文件的加載順序。
? ? ? ?其次,railties,engine,application這幾個類的繼承關(guān)系。而且,一個Rails的應(yīng)用是繼承自Application類的。其中Rails應(yīng)用的定義在config/application.rb這個配置文件中完成。
? ? ? ?另外,關(guān)于RubyGems,有一點需要記?。?當(dāng)我們require一個gem包的時候,我們將該gem包的lib文件加入到了load_path下,剩下的事情,和我們require一個普通ruby程序發(fā)生的事情是一樣的。
? ? ? ?關(guān)于接下來的事情。這兩天在看actionpack這一塊的東西,看來看去,其實東西挺多的,很難理出頭緒?,F(xiàn)在有三種選擇,一種是硬著頭皮看,另一種就是等過段時間有興趣了再看,第三種就是每當(dāng)在開發(fā)過程中遇到一種用法的時候,就到源代碼中尋找答案,積累著看。我打算選擇第三種,當(dāng)然第二種和第三種并不沖突,等到以后再說。目前是不打算再繼 續(xù)看下去了。
? ? ? ?沒事的時候,看看ruby的標(biāo)準(zhǔn)庫,想著能不錯。
? ? ? ?