工程師︰我已經拜讀了《Clean Code》,還有必要讀《Clean Architecture》嗎?
架構師︰喔,你會做磚頭,那你會蓋房子嗎?
將近10年的等待,全球知名作家Uncle Bob終於推出新作品《Clean Architecture》,由書名很容易就能猜到,這本書和《Clean
Code》一定有關。沒錯,這兩本書是有些相同,但又有很大的不同。相同之處在於,這兩本書都是在教導軟體工程師如何正確開發出好的軟體,甚至兩本書提到的原則名稱有些還是相同的。不同之處在於,即便是相同的原則,但在不同層次上使用時,要注意的地方截然不同。
總結來說,好的軟體系統始於整潔的程式碼(clean code),但光是這樣還不夠。也就是說,如果磚塊做得不好,那麼建築物的架構也就不重要了。但就另一方面來說,你也能用精心製作的磚塊來製造大量的垃圾,這本書就是要避免你製造垃圾。
因此,除了閱讀《Clean Code》之外,你還需要閱讀《Clean Architecture》!
再次地,Robert C. Martin以大師強而有力的口吻,極具說服力的文字來撰寫這本書,透過這本書教您如何建構好軟體的架構,釐清什麼是架構,以及認清獨立部署和獨立開發的重要性。如果您想開發的是企業級的軟體,那就千萬不可錯過這本書。
本書將徹底顛覆您的許多觀點,例如微服務是個架構嗎?C語言沒有多型嗎(多型是物件導向發明的嗎)?C語言和C++的封裝相比,誰比較完美?軟體是數學還是科學?什麼是測試的本質?你應該使用框架嗎?關聯式資料庫為何會流行,是否已日暮途窮了呢?你可以先試著回答這些問題,然後在閱讀本書之後,再次審思這些問題,相信大多數的人,要答對一半都很困難。
如果您自許成為一位專業的軟體工程師,強烈建議您,一定要好好詳讀這本書。
讀者評論
架構代表了塑造系統的「重要」設計決策,有多「重要」則是由因應變化的成本來衡量的。
Grady Booch ──《Object-Oriented Analysis and Design with Applications》作者
如果你認為好架構的代價是昂貴的,那不妨試試糟糕的架構。
Brian Foote and Joseph Yoder ──《Pattern Languages of Program Design 4》作者
架構是你希望在專案早期就能得到的決定,但你並不一定能比其他任何時候更容易得到它們。
Ralph Johnson ──《Design Patterns: Elements of Reusable Object-Oriented Software》作者
架構是一個假設,需要透過實作和度量來證明。
Tom Gilb ──《Competitive Engineering: A Handbook For Systems Engineering, Requirements Engineering, and Software Engineering Using Planguag》作者
走得快的唯一方法就是走得好。
Robert C. Martin── 軟體大師,《Clean Code》、《無瑕的程式碼》系列書作者,
會做磚頭有什麼了不起,會蓋房子才厲害。
《博碩文化》、《名家名著》 總編輯 ── 陳錦輝