Trainings
Develop applications that embody the business and its constraints with Domain-Driven Design (DDD).
Domain-Driven Design is based on a simple idea: to create a good application, it is essential that its code reflects not only the business and its constraints but also the world around it. DDD provides a range of tools and patterns to constantly align business experts, developers, and code to ensure that the application effectively meets its objectives.
Throughout this training, you will discover the tools and patterns at your disposal to create and maintain this delicate alignment.
Goals
- Master the key concepts and principles of Domain-Driven Design.
- Implement the design principles of DDD and know how to apply the patterns.
- Use a common language with all project stakeholders.
- Gain practical experience in implementing the DDD approach.
Topics Covered
Introduction
- Domain-Driven Design, what are we talking about?
- The complexities in a project
Key Concepts
- Why model the business problem?
How to model the business problem?
- Ubiquitous Language
- Bounded Context
- Context Map
- Aggregate, Entities and Value Object
- Messages (Command, Domain Event and Query)
- Domain Service and Application Service
Case study
Collaborative Modeling
- Experience an EventStorming
- Classify with Core Domain Chart
- Document with Bounded Context Canvas
Technical Implementations
- Exploitation of EventStorming
- Creation of the first Aggregates, Entities, and Value Objects
- Publishing a Domain Event
- Reaction to a Domain Event
- Save the new state through Repositories
- Discussions for co-constructing the code
Conclusion and Recap
- Relation with Microservices
- Recall of Key Concepts
Training duration
The training time is 14 hours over 2 days, either remotely or at your office.
Target audience
- Architect
- Developer
- Lead Developer
- Tech lead
Prerequisites
- Experience in application development
- Knowledge of object-oriented programming
- Experience in application architecture is a plus.