“For software developers of all experience levels who want to improve their results and design and implement domain-driven enterprise applications consistent with the current best state of professional practice, Implementing Domain-Driven Design will provide a wealth of hard-earned knowledge within DDD and enterprise application architecture over the past few decades. communities.
–Randy Stafford, Architect At-Large, Oracle Consistency Product Development
"This book is a must read for anyone who wants to put DDD into practice."
–Udi Dahan, Founder of NServiceBus
Applying Domain-Driven Design offers a top-down approach to understanding domain-based design (DDD) in a way that fluidly connects strategic patterns to key tactical programming tools. Vaughn Vernon combines practical approaches with modern architectures, emphasizing the importance and value of focusing on business while balancing technical considerations.
Based on Eric Evans' seminal book Domain-Driven Design, the author presents practical DDD techniques with examples from familiar areas. Each principle is supported by realistic Java examples, all applicable to C# developers, and all content is tied together by a single case study: provisioning a large-scale Scrum-based SaaS system for a multi-tenant environment.
The author takes you far beyond the "DDD-light" approaches that embrace DDD only as a technical toolset, and shows you how to take full advantage of DDD's "strategic design patterns" using Bounded Context, Context Maps, and Ubiquitous Language. By using these techniques and examples, you can reduce time to market and improve quality while developing software that is more flexible, more scalable, and more closely aligned with business goals.
The scope includes:
Getting started with DDD the right way so you can quickly extract value from it
Using DDD in various architectures such as Hexagonal, SOA, REST, CQRS, Event-Driven and Fabric/Grid-Based
Designing and implementing assets appropriately and learning when to use Value Objects instead
Mastering DDD's powerful new Domain Events technique
Designing Repositories for ORM, NoSQL and other databases