Preface xi
Acknowledgments xv
About the Author xvii
Chapter 1: DDD for Me 1
Will DDD Hurt? 2
Good, Bad, and Effective Design 3
Strategic Design 7
Tactical Design 8
The Learning Process and Refining Knowledge 9
Let’s Get Started! 10
Â
Chapter 2: Strategic Design with Bounded Contexts and the Ubiquitous Language 11
Domain Experts and Business Drivers 17
Case Study 21
Fundamental Strategic Design Needed 25
Challenge and Unify 29
Developing a Ubiquitous Language 34
Architecture 41
Summary 44
Â
Chapter 3: Strategic Design with Subdomains 45
What Is a Subdomain? 46
Types of Subdomains 46
Dealing with Complexity 47
Summary 50
Â
Chapter 4: Strategic Design with Context Mapping 51
Kinds of Mappings 54
Making Good Use of Context Mapping 60
An Example in Context Mapping 70
Summary 73
Â
Chapter 5: Tactical Design with Aggregates 75
Why Used 76
Aggregate Rules of Thumb 81
Modeling Aggregates 88
Summary 98
Â
Chapter 6: Tactical Design with Domain Events 99
Designing, Implementing, and Using Domain Events 100
Event Sourcing 107
Summary 109
Â
Chapter 7: Acceleration and Management Tools 111
Event Storming 112
Managing DDD on an Agile Project 125
Timeboxed Modeling 132
Summary 136
References 137
Index 139