「搞笑談軟工」板主 Teddy 專文推薦
關於 [名家名著] 30
領域驅動設計(DDD)是一種軟體開發方法,只要實作得當,可以幫助開發人員設計出高品質的軟體模型,明確地反映出預期業務目標。然而能不能成功實作 DDD,卻是許多 DDD 開發人員所遭遇到的共同難題,對於新接觸 DDD 的人來說更是困難重重。作者 Vaughn Vernon 以一種獨到的方式將 DDD 中的抽象概念統整起來,並做出規範,而這些指導原則,正是實作 DDD 的最佳指引。作者用搭飛機來比喻接觸 DDD 的心情,將 Eric Evans 的《領域驅動設計: 軟體核心複雜度的解決方法》比喻為「從高處俯瞰的視角與寬廣的視野」,而本書則像是一張地圖,其作用是「帶領各位讀者緩緩降落、停穩飛機,走一條熟悉的路線安全到家」。
《實戰領域驅動設計》以由上而下的方式說明 DDD,將戰略模式與基礎的戰術程式設計工具自然地結合起來。Vaughn Vernon 示範了如何在現代軟體架構中實作 DDD,強調業務領域概念的重要性與價值之同時,又不失技術層面上的務實考量。
本書是基於 Eric Evans 的開創性著作《領域驅動設計》一書而來,作者透過我們都熟知的業務領域範例講解如何實作 DDD。所有的原則都搭配真實的 Java 程式範例,對於 C# 程式語言的開發人員也同樣適用,所有的範例內容都來自於一個設想案例:基於一個假想的大型 SaaS 多租戶 Scrum 協作系統的開發案例研究。
本書作者將帶領讀者跨越「DDD-Lite」的侷限,不僅僅是將DDD作為一套技術工具運用,而是透過 Bounded Context、情境地圖、通用語言,充分運用 DDD 的「戰略設計模式」。而透過書中的技術與範例,可以加速軟體開發、提高品質,讓軟體更具靈活性與可擴展性,同時緊密地與業務目標保持一致。
【本書精彩內容】
☑ 以正確的方法踏入 DDD 的世界,就能快速從中獲益
☑ 說明如何將 DDD 運用於不同的架構中,包括六角架構、SOA、REST、CQRS、事件驅動設計以及基於 Data Fabric/網格的架構
☑ 妥善地設計與運用實體,並了解何時該使用值物件而非實體
☑ 學習掌握與運用 DDD 強大的新技術——領域事件
☑ 利用 ORM 與 NoSQL 和其他資料庫等技術來實作 Repository
各界專業人士推薦
「閱讀 DDD 藍皮書時搭配本書一起服用,學習效果更好。此外,本書還包含在 DDD 藍皮書中沒有提到,但後來 DDD 社群廣泛使用的模式,像是領域事件(Domain Event)、事件溯源(Event Sourcing)、六角架構、命令與查詢責任分離(CQRS)等,兼顧深度與廣度,誠意十足。」—Teddy Chen,部落格「搞笑談軟工」板主
我個人的著作《領域驅動設計》(Domain-Driven Design)一書出版近九年,這些年已經累積了不少關於 DDD 的新知識,包括基礎知識新的介紹方式,而 Vaughn 這本書正是對 DDD 有最完整闡述的指引,更為我們帶來了全新的實作觀點。」—Eric Evans,《領域驅動設計》作者
「對於期望提升技術的軟體開發人員來說,想在軟體開發過程中遵循最佳的專業實踐方法來設計與實作領域驅動的企業應用程式,《實戰領域驅動設計》傳授了過去幾十年領域驅動設計和企業應用程式架構社群努力耕耘的寶貴知識。」—Randy Stafford,自由架構設計師,Oracle Coherence 產品開發部門
「對於渴望落實 DDD 設計的人來說,絕對不可錯過本書。」—Udi Daham,NServiceBus 創辦人