2-5 DAY LEARNING JOURNEY
Production-Ready Domain-Driven Design
With the Model Exploration Whirlpool
The essence of Domain-Driven Design is designing shared models between all disciplines involved in creating software. We should spend most of our effort on the part of the software that handles complex business requirements. We need to focus on a language where we really crisply concisely describe the situation in the domain, a shared language created through conversations between all disciplines involved.
Eric Evans wrote about the Model Exploration Whirlpool. It describes a process for exploring models. In this workshop, you will learn to use this process to go from exploring the problem space to probing a model in code, to deploying production-ready software.
The first 2-days are required, and you can optionally add the rest!
Domain-Driven Design for Software Teams
Start your explorative journey into Domain-Driven Design, discovering the benefits of collaborative domain modelling alongside stakeholders and software teams. We take the 1st day of this 2-day workshop to introduce the foundation of Domain-Driven Design with hands-on practical collaboration techniques such as EventStorming and Example Mapping.
Applying Tactical Domain-Driven Design patterns
During this workshop, we take the output from the domain modeling session from the first day, and use it as a foundation for crafting our software model. We’ll apply responsibility-driven development principles and collaborate using CRC cards to ensure that each candidate class of our design is purposeful and clearly defined. By emphasizing continuous collaboration with domain experts, we maintain a strong alignment between code and model throughout the workshop. With the model whirlpool method as our compass, we chart a course from defining bounded contexts to implementing tactical patterns with Test-Driven Development (TDD) in Java or C#. By the conclusion, you’ll not only have coded with advanced DDD patterns but also developed a mindset for solving complex design challenges in a maintainable and scalable way.
(Optional) Domain-Driven Design: Refactoring to Deeper Insights
“Domain-Driven Design: Refactoring to Deeper Insights” is an intensive one-day workshop that guides participants through several iterations of Eric Evans’s modelling whirlpool, transforming a basic initial software model into one that intricately reflects the nuanced concerns of domain experts. It provides a deep dive into Part IV of Evans’s seminal work on Domain-Driven Design (DDD), tailored for Java and C# developers eager to expand their expertise beyond basic patterns like aggregates, entities and value objects.
(Optional) Disentangling Legacy Software with Domain-Driven Design
Learn how to disentangle a legacy software systems and keep on releasing new features.
More information soon!
(Optional) Integrating and testing Event-driven Domain-Driven Designed software architectures
Learn how to integrate and Test Event-Driven systems with Consumer Driven Contract testing.
More information soon!