前端架構設計的方法論
系統的架構設計用來定義應用程式的基本特徵和行為。
- 良好的架構是系統構建成功的關鍵。
架構驅動
的軟體開發是構建複雜系統的最有效方法,架構驅動的方法優於需求驅動,文件驅動和方法論(抽象推理的能力)驅動。雖然方法論(抽象推理的能力)可以幫助我們取得專案的成功,但是它並不是決定性的因素。
1、初期如何設計架構
所有架構的核心:關注點分離
(分離角色和職能,分離之後的結果是對具體功能的高度抽象)。
架構設計的過程其實也是在梳理需求的過程中不斷
標識
、封裝
和操縱
關注點。
根據迪米特法則
和開閉原則
,分離之後的職責物件應該高度獨立
和封閉
(優點是不需要關係它們內部的具體實現,只關心輸入和輸出即可)。
更容易構造有效的(職責)角色
和強力的模型
,變的更好開發,測試,管理和維護。
2、構建系統的步驟
1、抽象職責(功能模組)
之間的相互作用
2、抽象職責
和資料流
之間的關係
3、注意的四個點
1、擴充套件性
功能和業務在不修改結構的情況下是否容易擴充套件。
2、彈性(伸縮性)
隨著系統的複雜程度增加,在擴充套件性良好的前提下是否可以持續支撐需求。
3、靈活性
對當前架構進行擴充套件的前提下是否可以方便快捷的進行。通常來說就是反脆弱性
怎麼樣。
4、穩定性
對需求和變化的接納度,以及對異常狀況的相容情況。
4、評判標準
1、靈活性
響應外部環境變化的能力,架構中是否便捷做一些改變,功能模組間的緊耦合是降低靈活性的關鍵。
2、易於部署
3、易於開發
4、可測試性
職責和資料流的劃分,便於分塊測試。
5、伸縮性
系統是否利於擴充套件,緊耦合與職責劃分不清晰是降低伸縮性的關鍵。
6、效能
任何架構的本質是在處理資料流,所以資料流的流轉效率決定了該架構的效能。
最後
本文提出的這些觀點實際上也是屬於架構設計的方法論
。在掌握並熟練運用了這些方法論之後並實踐到專案中,慢慢的才會搭建出更好的架構。
ps:由於本人比較懶,所以沒有針對一些名詞做具體講解和示例。