? ? ? 學(xué)習(xí)Rails很久,其實(shí)已經(jīng)將官方的入門(mén)指南閱讀過(guò)N(N>10)遍了刘陶;自己動(dòng)手寫(xiě)的demo也不在少數(shù)了,當(dāng)然由于前端問(wèn)題,總是不能滿意兢卵,最終都草草收尾;之前在一個(gè)小公司里面實(shí)習(xí)時(shí)候也做的是Rails的開(kāi)發(fā)工作绪颖』嗷纾總是以上的幾種經(jīng)歷一直在增加我閱讀Rails源代碼的興趣。
? ? ? 其實(shí)之前也試著讀過(guò)幾次Rails源代碼柠横,每次都是以ActiveRecord這個(gè)庫(kù)作為入手點(diǎn)窃款,可能是由于當(dāng)時(shí)Ruby功底的限制,總是不能堅(jiān)持下去牍氛。
? ? ? 這次再次閱讀Rails源代碼晨继,以Rails啟動(dòng)流程這篇指南作為閱讀的指導(dǎo),將railties庫(kù)的源代碼閱讀了好幾遍搬俊。相對(duì)來(lái)說(shuō)紊扬,收獲還是很大的。
? ? ? ?首先唉擂,以rails sever和rails ?console這個(gè)命令為起始點(diǎn)餐屎,徹底搞清楚了config文件夾下的配置文件的加載順序。
? ? ? ?其次楔敌,railties啤挎,engine,application這幾個(gè)類的繼承關(guān)系卵凑。而且庆聘,一個(gè)Rails的應(yīng)用是繼承自Application類的。其中Rails應(yīng)用的定義在config/application.rb這個(gè)配置文件中完成勺卢。
? ? ? ?另外伙判,關(guān)于RubyGems,有一點(diǎn)需要記缀诔馈: 當(dāng)我們r(jià)equire一個(gè)gem包的時(shí)候宴抚,我們將該gem包的lib文件加入到了load_path下勒魔,剩下的事情,和我們r(jià)equire一個(gè)普通ruby程序發(fā)生的事情是一樣的菇曲。
? ? ? ?關(guān)于接下來(lái)的事情冠绢。這兩天在看actionpack這一塊的東西,看來(lái)看去常潮,其實(shí)東西挺多的弟胀,很難理出頭緒。現(xiàn)在有三種選擇喊式,一種是硬著頭皮看孵户,另一種就是等過(guò)段時(shí)間有興趣了再看,第三種就是每當(dāng)在開(kāi)發(fā)過(guò)程中遇到一種用法的時(shí)候岔留,就到源代碼中尋找答案夏哭,積累著看。我打算選擇第三種献联,當(dāng)然第二種和第三種并不沖突竖配,等到以后再說(shuō)。目前是不打算再繼 續(xù)看下去了酱固。
? ? ? ?沒(méi)事的時(shí)候械念,看看ruby的標(biāo)準(zhǔn)庫(kù),想著能不錯(cuò)运悲。
? ? ? ?