20 Years of Domain-Driven Design: What I’ve Learned About DDD
In invoicing, a product is a price. In shipping, it's a weight and size. This simple distinction is the key to mastering Domain-Driven Design.
#1about 2 minutes
An overview of core Domain-Driven Design techniques
DDD encompasses a range of techniques from high-level Event Storming for understanding the domain to tactical design for implementing classes and aggregates.
#2about 3 minutes
Prioritizing quality by focusing on the core domain
Instead of aiming for uniform high quality, strategically focus development effort and refinement on the core domain, which is the most critical part of the system.
#3about 1 minute
Viewing DDD as a holistic software engineering approach
Domain-Driven Design is not just a set of coding rules but a comprehensive approach to software engineering that addresses different concerns for various roles like developers and architects.
#4about 5 minutes
Letting the domain drive design to deliver customer value
The primary goal of applying DDD is to deliver value to the customer, which requires developers to actively engage with users and domain experts to understand their needs.
#5about 6 minutes
Fostering collaboration with techniques like Event Storming
Collaborative modeling techniques like Event Storming lower the barrier to participation, enabling better knowledge crunching and shared understanding between technical teams and domain experts.
#6about 5 minutes
Deconstructing the three aspects of Bounded Contexts
A Bounded Context is a core DDD pattern that defines the boundary for a specific domain model, its associated ubiquitous language, and often the scope of a single team.
#7about 5 minutes
Building autonomous modules focused on functionality
Design modules around business functionality rather than shared data entities to create highly autonomous systems with low coupling.
#8about 2 minutes
Summary of key lessons from 20 years of DDD
The talk concludes by reinforcing that DDD is about letting the domain drive design, using collaboration to understand it, and building autonomous modules.
Related jobs
Jobs that call for the skills explored in this talk.
Why Attend a Developer Event?Modern software engineering moves too fast for documentation alone. Attending a world-class event is about shifting from tactical execution to strategic leadership.
Skill Diversification: Break out of your specific tech stack to see how the industry...