Production-ready Domain-Driven Design
October 24, 2022 2022-12-21 16:18Production-ready Domain-Driven Design
Production-ready Domain-Driven Design
Requirements
- You are a Software Developer or a Software Architect
- You know how to do object-oriented programming in Java or/and C#
Do you want to know how to explore models collaboratively? How to move from collaboration tools like EventStorming and Example mapping to designing models and implementing them, especially in an Agile or Lean setting?
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 from exploring the problem space to probing a model in code to deploying production-ready software.
We’ll explore scenarios and models for a business domain during the first part with EventStorming, Example Mapping, context mapping, and Responsibility Driven-Design. In the second part, we will refactor to deeper insights with supple design and deep model and start our code probing with our newly designed bounded context. We will go from outside-in Object-Oriented TDD and bug hunting toward functional-style programming in several labs. We’ll finish protecting our bounded context with the Ports & Adapters architecture. You will leave this session with hands-on experience to start your exploration into creating a production-ready, Domain-Driven Design!
What will you learn during this Course?
- How to model and design bounded contexts with the Model Exploration Whirlpool and create production-ready software.
- Collaboratively design with visual collaboration tools like EventStorming, Example Mapping, Context Mapping, and Responsibility mapping based on CRC cards.
- Learn how to use and implement the basic tactical DDD patterns like Entity, Value Object, Aggregate, Service, and Repository.
- How to work towards a functional mindset in an object-oriented language.
- The DDD concepts Supple Design and Deep Model.
- Protect your bounded context by splitting accidental complexity from the essential model complexity with the Ports and Adapters architecture.
-
Module 1 (Scenario)
-
Module 2 (Model)
-
Module 3 (Model-Driven Design through Code probe)
-
Module 4 (Deep Modeling)
-
Module 5 (Production Ready)