【讀書心得】01 - Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇
簡介
Chapter1:什麼是設計與結構
維護是昂貴的。沒有良好的設計架構,維護的成本會隨著時間成正比。
故開發人員應該要知道怎麼做才能達成:「付出最少開發時間精力,產生力最大化」的做法,那就是要有良好的設計及架構。
Chapter2:兩種價值觀的故事
軟體開發是不同利益的鬥爭:業務注重功能;開發注重架構。身為開發人員有義務維持架構/程式的架構,這也是開發人員最重要的職責。
一個可以正常運行的程式,如果因為架構之糟而導致無法維護、難以變更需求,那這就是一個失敗的程式。開發的工作就是在達成需求之餘,也要讓程式可以被維護、降低維護成本。總不能想要換掉一個馬桶,需要把整間房子拆掉吧。
從基礎開始:程式設計範式
Chapter3:範式概述
初學程式時,大家都是直接把邏輯寫在Main 裡面。既不會去切分成方法,可能也不懂得運用物件。雖然這樣可以隨心所欲的撰寫程式碼,但對於專業的程式設計師來說是絕對不可行的。所以在結構上有了三種程式設計的規範(範式)
等看完後面幾個章節,應該對三種範式會有更深的理解
- 結構化設計:直接(對演算法邏輯) 控制轉移的規範
使用if-else, for-loop, while-loop - 物件導向設計:間接(對資料結構) 控制轉移的規範
導入模組概念 - 函數式設計:為賦值(assign) 的規範
相同input 執行而成的output 不變,且不能有額外的作用(個人解讀為:一個function 的職責要乾淨)
Chapter4:結構化程式設計
Chapter5:物件導向程式設計
Chapter6:函數式程式設計
設計原則
Chapter7:SRP 單一職責原則
Chapter8:OCP 開放封閉原則
Chapter9:LSP Liskov 替換原則
Chapter10:ISP 介面隔離原則
Chapter11:DIP 依賴反向原則
先前已經有研究過: 【物件導向】02 - 物件導向設計原則:SOLID | TAKA的學習筆記 - 點部落 (dotblogs.com.tw)
元件原則
Chapter12:元件
指一個最小單位,這個單位被切割出來後,仍可以提供特定目的完整的功能。好的元件單位可以獨立被執行、部屬。