Implementing Domain-Driven Design (Hardcover)

Vaughn Vernon



“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.”

–Randy Stafford, Architect At-Large, Oracle Coherence Product Development


“This book is a must-read for anybody looking to put DDD into practice.”

–Udi Dahan, Founder of NServiceBus


Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.


Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.


The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.


Coverage includes

  • Getting started the right way with DDD, so you can rapidly gain value from it
  • Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based
  • Appropriately designing and applying Entities–and learning when to use Value Objects instead
  • Mastering DDD’s powerful new Domain Events technique
  • Designing Repositories for ORM, NoSQL, and other databases




- Randy Stafford, Oracle Coherence產品開發的架構師


- Udi Dahan, NServiceBus的創始人

「實踐領域驅動設計」以自上而下的方式介紹領域驅動設計(DDD),以流暢地將戰略模式與基本的戰術程式設計工具相連結。Vaughn Vernon結合了實施的引導方法和現代架構,強調在平衡技術考量的同時,專注於業務領域的重要性和價值。

在Eric Evans的經典著作「領域驅動設計」的基礎上,作者通過熟悉的領域示例呈現實用的DDD技術。每個原則都有實際的Java示例,適用於C#開發人員,並且所有內容都通過一個案例研究相互關聯:為多租戶環境提供大規模Scrum基礎的SaaS系統。



- 正確的方式開始使用DDD,以便快速獲得價值
- 在不同架構中使用DDD,包括六邊形、SOA、REST、CQRS、事件驅動和Fabric/Grid-Based
- 適當地設計和應用實體,並學習何時使用值對象
- 掌握DDD強大的新領域事件技術
- 為ORM、NoSQL和其他數據庫設計存儲庫