Clean Architecture: A Craftsman's Guide to Software Structure and Design 封面

Clean Architecture: A Craftsman's Guide to Software Structure and Design

👨‍💼: Robert C. Martin
📅: September 10, 2017
Buy Now
📖:

架構(Architecture)對軟體系統很重要:好架構會讓系統更易維護、擴展和適應變化。 架構與設計(Design)沒有不同,雖處於不同層次的決策,都屬於整體計畫的一部分,皆影響了整體結果。 也就是說,架構與程式設計師息息相關,一個好的程式設計師,必然會去學習何謂好架構,也能從學習架構的過程中,精進自己的設計能力。

如果你是個程式設計師,如果你想成為一個優秀的程式設計師,這本教你如何設計出整潔架構的 Clean Architecture 會是本必讀指南。

📘 深度概覽

作者背景#

Robert C. Martin(Uncle Bob)是美國軟體工程師、作家與顧問,自 1970 年起從事專業程式開發,職涯超過五十年。他是 Agile Manifesto 的共同起草人、SOLID 設計原則的提出者,曾創辦 Object Mentor 顧問公司並任 8th Light 首席工匠。他的 Clean 系列著作(《Clean Code》、《The Clean Coder》、《Clean Architecture》、《Clean Craftsmanship》)被譽為軟體工程領域的必讀經典。

完整摘要#

本書從一個核心命題出發:架構(Architecture)與設計(Design)本質上沒有區別,兩者都是軟體整體計畫的一部分。書中首先論證好架構的價值——它讓系統易於維護、擴展和適應變化,並指出軟體的「行為價值」(讓系統正確運作)與「架構價值」(讓系統易於改變)同等重要,甚至後者更為關鍵。接著,作者以三種程式設計典範(結構化、物件導向、函數式)為基石,說明它們各自透過限制(取消 goto、限制間接存取、限制賦值)來為架構設計提供紀律。書中詳細闡述 SOLID 五大設計原則(SRP、OCP、LSP、ISP、DIP),將其從類別層級提升到元件與架構層級的應用。在元件原則部分,探討了元件內聚(REP、CCP、CRP)與元件耦合(ADP、SDP、SAP)的權衡。全書的高潮是「整潔架構」(Clean Architecture)的提出——以同心圓模型統合 Hexagonal Architecture、Onion Architecture 等前人智慧,核心規則是原始碼依賴方向必須指向內層(高層策略),外層的變化不應影響內層。最後以資料庫、Web、框架皆為「細節」而非架構核心的論述作結,並附上實際案例研究。

本書的貢獻與定位#

《Clean Architecture》將散落在數十年軟體工程文獻中的架構智慧——從 Dijkstra 的結構化程式設計到 Alistair Cockburn 的 Hexagonal Architecture——整合為一套連貫的架構思維框架。相較於 Martin Fowler 的《Patterns of Enterprise Application Architecture》側重企業應用模式,本書更聚焦於架構的普遍原則與依賴管理。適合希望從程式碼層級思維提升到系統架構層級的開發者,以及所有想理解「為什麼架構很重要」的軟體工程師。