撰寫一般的 app code 時,多以結果導向,即程式能跑、功能正確就行,至於 end users 看不到的程式碼,自己想怎麼寫就怎麼寫。尤其在專案時程很趕,與時間賽跑的情況下(哪個案子不是這樣?),哪還有閒功夫去琢磨:這個變數怎麼命名比較好、那些 code 是否要抽離成共用類別或函式、有哪些 patterns 可以 reuse 呢?
優良框架的特徵
1. 優良的框架一定很精簡
大部分的框架都不缺功能,因為只要需求明確,增加功能就很容易。 另一方面,當開發過程中出現時程壓力、功能蔓延(feature creep)等問題,或想要滿足每一項枝微末節的需求時,簡單性(simplicity)通常就會被犧牲掉。 如果多考慮一下設計的複雜性,你會發現,把目前版本的一些功能砍掉,並將時間花在思考下一個版本該如何設計才適當,這麼做通常會有比較好的結果。 如框架設計師常說的:「功能隨時可以加,但要將它移除可就難了。」
2. 優良的框架須付出較高的設計成本
框架設計應該是開發流程中的一項明確且專屬的工作,因為這項工作需要謹慎規劃、組織人力、並有效執行,它不應流於實作過程中的附屬產品。
3. 優良的框架充滿權衡取捨
沒有所謂「完美設計」這種東西。設計其實就是一連串的權衡取捨,然後做出正確決定。你得瞭解各種選項的優點和缺點。如果在設計時都沒有碰到需要取捨的情況,那不是你發現銀彈了,而是可能很多重要的地方都沒考慮到。
4. 優良的框架會善用既有成果5. 優良的框架能持續演進
6. 優良的框架易於整合
7. 優良的框架具備一致性
No comments:
Post a Comment