Rails源代碼閱讀總結(jié)

? ? ? 學(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)庫,想著能不錯。


? ? ? ?

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

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 學(xué)習(xí) ruby on rails 有一段時間了,也寫過一些簡單的程序。但對 rails 一直充滿神秘感,為什么我們...
    z_k閱讀 2,804評論 1 7
  • 問題起因 點擊按鈕就調(diào)用 handler.post(runnable); 就能啟動定時器,這里是每隔1s打印線程名...
    王尼小老板閱讀 13,683評論 8 9

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