模組化與自我驗證的重要性

同樣是COSCUP一場精采的演講
原本的主題:Front-end Modular & Automated Development
但是我認為,這其實不只適用於Web Development的前端開發而已,所以決定下個中文標題

**[Front-end Modular & Autmomated Development ](http://www.slideshare.net/josephj/frontend-modular-autmomated-development "Front-end Modular & Autmomated Development ")**
View more [presentations](http://www.slideshare.net/) from [Joseph Chiang](http://www.slideshare.net/josephj).
[![](http://www.hitripod.com/blog/content/images/2010/08/old-300x176.png "old")](http://www.hitripod.com/blog/content/images/2010/08/old.png) 模組化有多重要,講者說的很好,"沒有模組化,那就是疊床架屋",事實上為什麼LLVM會紅,就是因為做到了一件事:模組化,而GCC就真的是疊床架屋,太老舊的架構,一直疊上去也毫無意義。

So…Design a loosely-coupled system!!(關於設計樣式,講者是採用Observer Pattern)

但是,要設計模組化的系統並不簡單,除非你打算一個人完成一整個系統Orz。
團隊的開發問題就來了,人。所以我們需要規範,需要Programming style guideline,但是如果你要讓十個人所開發的軟體程式碼看起來就像是一個人寫的(也就是大家都遵循同樣的規範、風格),那代表你必須規範的很細,而規範的很細,人就是懶,又會不想看(講者說到這裡真的是一針見血!),所以到最後還是等於沒寫。

於是必須想個辦法,submit code之後等待其他人審核是個不錯的方法,但是太浪費大家的時間,所以講者介紹了幾個自我驗證的工具,讓每個人在submit code之前都必須先經過這個驗證程式的審核(當然只能做到很基本的),才能commit程式碼,當大家被強迫這樣做之後,發現驗證失敗,就會去查guideline,養成了這個習慣,guideline才有意義!