《名家名著》00
《無瑕的程式碼──整潔的軟體設計與架構篇》
工程師︰我已經拜讀了《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》、《無瑕的程式碼》系列書作者,
會做磚頭有什麼了不起,會蓋房子才厲害。
《博碩文化》、《名家名著》 總編輯 ── 陳錦輝
作者簡介:
Robert C. Martin:人稱Uncle Bob,程式設計經驗超過40年,Agile Software(敏捷軟體開發)的提倡者之一。創立Object Mentor,這是一間專注於C++、Java物件導向、模式、UML、敏捷方法學和極限程式設計的顧問諮詢公司。
在這些領域,作者撰寫了相當多的名著,並獲得有IT奧斯卡獎之稱──Jolt震撼年度大獎。其中,最暢銷的是《Clean Code》(中文版為無瑕的程式碼),為Amazon該類別的暢銷榜首,也被國內公認為程式設計師必讀的一本書。
目錄
Part I 簡介
Chapter 1 什麼是設計與結構
Chapter 2 兩種價值觀的故事
Part II 從基礎開始:程式設計範式
Chapter 3 範式概述
Chapter 4 結構化程式設計
Chapter 5 物件導向程式設計
Chapter 6 函數式程式設計
Part III 設計原則
Chapter 7 SRP:單一職責原則
Chapter 8 OCP:開放-封閉原則
Chapter 9 LSP:Liskov 替換原則
Chapter 10 ISP:介面隔離原則
Chapter 11 DIP:依賴反向原則
Part IV 元件原則
Chapter 12 元件
Chapter 13 元件內聚性
Chapter 14 元件耦合性
Part V 架構
Chapter 15 什麼是架構
Chapter 16 獨立性
Chapter 17 邊界:畫線
Chapter 18 邊界剖析
Chapter 19 策略和層級
Chapter 20 業務規則
Chapter 21 會尖叫的架構
Chapter 22 整潔的架構
Chapter 23 Presenter 與Humble Object
Chapter 24 部分邊界
Chapter 25 層與邊界
Chapter 26 主元件
Chapter 27 服務:偉大與微小
Chapter 28 測試邊界
Chapter 29 整潔的嵌入式架構
Part VI 細節
Chapter 30 資料庫是細節
Chapter 31 Web是細節
Chapter 32 框架是細節
Chapter 33 案例研究:影片販售
Chapter 34 遺漏的章節
Part VII 附錄
Appendix A 架構考古學
Part I 簡介
Chapter 1 什麼是設計與結構
Chapter 2 兩種價值觀的故事
Part II 從基礎開始:程式設計範式
Chapter 3 範式概述
Chapter 4 結構化程式設計
Chapter 5 物件導向程式設計
Chapter 6 函數式程式設計
Part III 設計原則
Chapter 7 SRP:單一職責原則
Chapter 8 OCP:開放-封閉原則
Chapter 9 LSP:Liskov 替換原則
Chapter 10 ISP:介面隔離原則
Chapter 11 DIP:依賴反向原則
Part IV 元件原則
Chapter 12 元件
Chapter 13 元件內聚性
Chapter 14 元件耦合性
Part V 架構
Chapter 15 什麼是架構
C...
購物須知
關於二手書說明:
商品建檔資料為新書及二手書共用,因是二手商品,實際狀況可能已與建檔資料有差異,購買二手書時,請務必檢視商品書況、備註說明及書況影片,收到商品將以書況影片內呈現為準。若有差異時僅可提供退貨處理,無法換貨或再補寄。
商品版權法律說明:
TAAZE 單純提供網路二手書託售平台予消費者,並不涉入書本作者與原出版商間之任何糾紛;敬請各界鑒察。
退換貨說明:
二手書籍商品享有10天的商品猶豫期(含例假日)。若您欲辦理退貨,請於取得該商品10日內寄回。
二手影音商品(例如CD、DVD等),恕不提供10天猶豫期退貨。
二手商品無法提供換貨服務,僅能辦理退貨。如須退貨,請保持該商品及其附件的完整性(包含書籍封底之TAAZE物流條碼)。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱
退換貨原則、
二手CD、DVD退換貨說明。