Cover
Title Page
Copyright Page
Contents
Preface
Acknowledgments
About the Author
Chapter 1 DDD for Me
Will DDD Hurt?
Good, Bad, and Effective Design
Strategic Design
Tactical Design
The Learning Process and Refining Knowledge
Let’s Get Started!
Chapter 2 Strategic Design with Bounded Contexts and the Ubiquitous Language
Domain Experts and Business Drivers
Case Study
Fundamental Strategic Design Needed
Challenge and Unify
Developing a Ubiquitous Language
Putting Scenarios to Work
What about the Long Haul?
Architecture
Summary
Chapter 3 Strategic Design with Subdomains
What Is a Subdomain?
Types of Subdomains
Dealing with Complexity
Summary
Chapter 4 Strategic Design with Context Mapping
Kinds of Mappings
Partnership
Shared Kernel
Customer-Supplier
Conformist
Anticorruption Layer
Open Host Service
Published Language
Separate Ways
Big Ball of Mud
Making Good Use of Context Mapping
RPC with SOAP
RESTful HTTP
Messaging
An Example in Context Mapping
Summary
Chapter 5 Tactical Design with Aggregates
Why Used
Aggregate Rules of Thumb
Rule 1: Protect Business Invariants inside Aggregate Boundaries
Rule 2: Design Small Aggregates
Rule 3: Reference Other Aggregates by Identity Only
Rule 4: Update Other Aggregates Using Eventual Consistency
Modeling Aggregates
Choose Your Abstractions Carefully
Right-Sizing Aggregates
Testable Units
Summary
Chapter 6 Tactical Design with Domain Events
Designing, Implementing, and Using Domain Events
Event Sourcing
Summary
Chapter 7 Acceleration and Management Tools
Event Storming
Other Tools
Managing DDD on an Agile Project
First Things First
Use SWOT Analysis
Modeling Spikes and Modeling Debt
Identifying Tasks and Estimating Effort
Timeboxed Modeling
How to Implement
Interacting with Domain Experts
Summary
References
Index
A
B
C
D
E
F
G
I
K
L
M
N
O
P
Q
R
S
T
U
V
W