【讀書心得】01 - Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇

【讀書心得】01 - Clean Architecture 無瑕的程式碼:整潔的軟體設計與架構篇

簡介

Chapter1:什麼是設計與結構

維護是昂貴的。沒有良好的設計架構,維護的成本會隨著時間成正比。
故開發人員應該要知道怎麼做才能達成:「付出最少開發時間精力,產生力最大化」的做法,那就是要有良好的設計及架構。

Chapter2:兩種價值觀的故事

軟體開發是不同利益的鬥爭:業務注重功能;開發注重架構。身為開發人員有義務維持架構/程式的架構,這也是開發人員最重要的職責。
一個可以正常運行的程式,如果因為架構之糟而導致無法維護、難以變更需求,那這就是一個失敗的程式。開發的工作就是在達成需求之餘,也要讓程式可以被維護、降低維護成本。總不能想要換掉一個馬桶,需要把整間房子拆掉吧。

從基礎開始:程式設計範式

Chapter3:範式概述

初學程式時,大家都是直接把邏輯寫在Main 裡面。既不會去切分成方法,可能也不懂得運用物件。雖然這樣可以隨心所欲的撰寫程式碼,但對於專業的程式設計師來說是絕對不可行的。所以在結構上有了三種程式設計的規範(範式)
等看完後面幾個章節,應該對三種範式會有更深的理解

  1. 結構化設計:直接(對演算法邏輯) 控制轉移的規範
    使用if-else, for-loop, while-loop
  2. 物件導向設計:間接(對資料結構) 控制轉移的規範
    導入模組概念
  3. 函數式設計:為賦值(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:元件

指一個最小單位,這個單位被切割出來後,仍可以提供特定目的完整的功能。好的元件單位可以獨立被執行、部屬。