《架構整潔之道》讀後筆記

1.軟件架構的職責:創建出一個可以功能實現起來容易,修改起來簡單,擴展起來輕鬆的軟件架構
2.面向對象編程就是以多態爲手段來對源代碼中的依賴關係進行控制的能力,這種能力讓軟件架構師可以構建出插件式架構,讓高層策略性組件與底層實現性組件相分離,底層組件可以被編譯成插件,實現獨立於高層組件的開發與部署
3.開閉原則主要目標:讓系統容易擴展,同時限制其每次被修改影響的範圍;實現方式是通過將系統劃分爲一系列組件,並且將這些組件間的依賴關係按層次結構進行組織,使得高階組價不會因爲低階組件(例如view)被修改而受到影響
4.依賴反轉原則告訴我們在源代碼層次的依賴關係中就應該多引用抽象類型,而非具體的實現;我們修改抽象接口的時候,一定也會修改對應的具體的實現,但反過來,當我們修改具體的實現時卻很少需要去修改相應的抽象接口,所以我們認爲接口比實現更穩定
5.接口隔離規則告訴我們任何層次的軟件設計如果依賴了它並不需要的東西就會帶來意外的麻煩,解決方法:將不同的操作隔離成接口來解決
6.組件構建原則:複用/發佈原則;共同閉包原則(將同時修改且相同目的而修改的類放到同一個組件中),共同複用原則(將經常共同複用的類或模塊放到同一個組件中);
7.組件之間要打破循環依賴關係:可以使用依賴反轉原則;創建一個新的組件
8.架構師普遍利用的設計原則:將軟件的高層策略與其底層實現隔離開,並儘可能推遲與實現細節相關的決策,越晚越好,這樣可以有更多可選項
9.離輸入輸出距離最遠的組件作爲高層組件,底層組件應該依賴高層組件,底層組件應該成爲高層組件的插件
10.業務邏輯應該保持純淨,不要參雜用戶界面,或者使用數據庫相關的東西;業務邏輯是整個系統的核心,其他底層的實現應該以插件的形式接入系統
11.一個良好的架構設計應該圍繞用例展開,這樣的架構設計可以脫離框架工具,使用環境的情況下完整描述用例,好比一個建築設計的目標首先滿足住宅的使用需求,而不是確保用什麼磚建這個房子,良好的架構設計儘可能的允許用戶推遲延後用什麼框架,數據庫,web服務以及其他與環境相關的工具
12.強大的可測試行是一個架構的設計是否優秀顯著衡量標準之一,將系統的架構劃分邊界,劃分容易測試的部分,難以測試部分,可以大幅提高系統的可測試性
13.架構設計的任務就是找到高層策略與底層細節之間的架構邊界,同時保證這些邊界遵守依賴關係規則
14.如果一個系統的代碼只能在目標硬件上測試,那麼它的開發過程會變得非常艱難,別讓你的代碼變爲固件(隨硬件的改變而改變)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章