淺析ROR為何能實現(xiàn)快速(敏捷)開發(fā)

都說ROR架構的特點是快速開發(fā)梢什,不少書中都以5分鐘創(chuàng)建一個簡單的博客系統(tǒng)來作為例證,體現(xiàn)ROR驚人的開發(fā)效率朝聋。但我覺得這個例子顯得有些片面嗡午,因為這至多只能作為新手上手時的體驗和示范,實際項目中冀痕,scaffold自動生成的代碼大多是不可用的(但其默認的restful架構還是需要遵循的)荔睹,我們的實際需求通常遠高于自動生成的代碼所能提供的功能。

下面我想結合實際工作中的一些體會言蛇,簡單闡述一下我對ROR為何能實現(xiàn)快速開發(fā)的理解:

1.MVC架構——ROR嚴格遵循MVC架構(在此我還想再次鄙視一下active_admin這個反人類的gem)僻他。這種分離式的架構,讓代碼的可重用性大大增強腊尚。如果還能充分理解并實踐“瘦controller肥model”的理念并且合理規(guī)劃命名空間吨拗,那整個model文件都能具備高度的重用性和可移植性。例如我在上一個項目中婿斥,在base命名空間下有一個province的model劝篷,model里寫了一些關聯(lián)、驗證民宿、枚舉娇妓、scope、實例方法活鹰、類方法哈恰,那作為一個很多項目都會調用到的model,在以后的項目中志群,我只要將這個model整個復制做來着绷,遷移文件已復制過來,執(zhí)行一下遷移赖舟,就OK了蓬戚,以前努力建設的工作成果,瞬間為下一個項目提速宾抓。試想如果一個新項目的基礎model(一般此類model不需要視圖文件子漩,也很少會用到其控制器)都是采用這種方式來搭建豫喧,那可能一兩個小時就能完成一個新項目的基礎框架搭建工作。

2.眾多可擴展的gem包以及方便的安裝步驟——眾所周知幢泼,github上有N多知名的rails的gem包紧显,這些gem包安裝方便(寫進gemfile之后bundle),種類豐富缕棵,可實現(xiàn)各類常用的功能孵班。調用這些gem包,可省去大量自己手寫的工作量招驴,并且實現(xiàn)的功能應該遠比自己手寫要完善和專業(yè)篙程。拋開jquery這類必用的知名大型gem不談,即便是一些微小的功能别厘,比如說方便實現(xiàn)樹形結構的acts_as_tree這個gem虱饿,也能大幅提升開發(fā)效率,原來我們需要自己定義父類触趴、子類氮发、同輩等一下必要的實例方法或者類方法,現(xiàn)在只要求model中具備parent_id字段冗懦,然后在model簡單加一句acts_as_tree(有關acts_as_tree的用法爽冕,可以參考我之前寫的一篇技術分享:http://blog.csdn.net/tcj1028/article/details/45936783),上述一些你能想到的以及你還沒想到的功能披蕉,都能直接調用了颈畸。如果能數量掌握一些常用gem的用法,那在架構一個新項目的時候嚣艇,效率會有飛躍性的提升承冰。

3.ruby語言本身的特性以及rails框架自帶的基礎功能——ruby是一門面向對象的編程語言,當你適應了ruby的面向對象編程方式之后食零,會覺得寫代碼不是機械的遵從某種語言架構來套用,而是一種自然自由的表達方式寂屏,就好像針對一個人物贰谣,在描寫他自身的各種能力,敘述在他身上(以及與他有關的其他人身上)發(fā)生的一些事情迁霎。rails框架是一個完全使用ruby編寫的框架吱抚,框架本身就已經提供了豐富的功能,比如知名的active_record類考廉。利用這些功能秘豹,你可以輕松的操作數據庫,進行增刪改查等基礎操作昌粤。其對象關系映射(ORM)的與ruby本身面向對象的編程思路高度統(tǒng)一既绕。兩者結合啄刹,會讓編寫代碼更順暢和易于理解,從而提升了ROR項目的開發(fā)效率凄贩。

以上就是我個人對ROR快速開發(fā)的一些理解誓军,希望能給ROR的初學者一些啟發(fā)和幫助,也歡迎各位補充疲扎、指正昵时。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市椒丧,隨后出現(xiàn)的幾起案子壹甥,更是在濱河造成了極大的恐慌,老刑警劉巖壶熏,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件句柠,死亡現(xiàn)場離奇詭異,居然都是意外死亡久橙,警方通過查閱死者的電腦和手機俄占,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淆衷,“玉大人缸榄,你說我怎么就攤上這事∽U” “怎么了甚带?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長佳头。 經常有香客問我鹰贵,道長,這世上最難降的妖魔是什么康嘉? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任碉输,我火速辦了婚禮,結果婚禮上亭珍,老公的妹妹穿的比我還像新娘敷钾。我一直安慰自己,他們只是感情好肄梨,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布阻荒。 她就那樣靜靜地躺著,像睡著了一般众羡。 火紅的嫁衣襯著肌膚如雪侨赡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音羊壹,去河邊找鬼蓖宦。 笑死,一個胖子當著我的面吹牛舶掖,可吹牛的內容都是我干的球昨。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼眨攘,長吁一口氣:“原來是場噩夢啊……” “哼主慰!你這毒婦竟也來了?” 一聲冷哼從身側響起鲫售,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤共螺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后情竹,有當地人在樹林里發(fā)現(xiàn)了一具尸體藐不,經...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年秦效,在試婚紗的時候發(fā)現(xiàn)自己被綠了雏蛮。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凿叠。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嘶朱,死狀恐怖,靈堂內的尸體忽然破棺而出勋磕,到底是詐尸還是另有隱情苔货,我是刑警寧澤犀概,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站夜惭,受9級特大地震影響姻灶,放射性物質發(fā)生泄漏。R本人自食惡果不足惜诈茧,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一产喉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敢会,春花似錦镊叁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疤苹。三九已至互广,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惫皱。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工像樊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旅敷。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓生棍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親媳谁。 傳聞我的和親對象是個殘疾皇子涂滴,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內容

  • 一、異同對比選擇1晴音、Python和ruby的相同點: * 都強調語法簡單柔纵,都具有更一般的表達方式。python是縮...
    沃倫蓋茨閱讀 4,144評論 2 24
  • Awesome Ruby Toolbox Awesome A collection of awesome Ruby...
    debbbbie閱讀 2,870評論 0 3
  • 文/新晴 張曉風獨自立于原野,看黃綠不勻的草在余暉中染了幾分醉意系羞,看牧羊的孩子走入疏疏密密的竹林后他們各自的家郭计,“...
    雪霽新晴閱讀 1,862評論 2 1
  • 問:我和一個異性朋友的關系 解牌:我的狀態(tài)抽到命運牌正位,說明我以非常慎重的態(tài)度面對這份關系椒振,這份關系對我非常重要...
    土豆燉番茄閱讀 197評論 0 0
  • 我和誰一起殺了一條魚昭伸,魚很大,我們決定剁成兩塊分掉杠人,我分掉的是魚尾那一塊勋乾。好大的一塊魚,塞滿了行李箱嗡善。我拖著箱子走...
    歲亦莫止閱讀 170評論 0 0