Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction to Domain-Driven Design
- Core principles and the drivers behind adopting DDD.
- Building a ubiquitous language through collaboration with domain experts.
- Differentiating between core, supporting, and generic subdomains.
Strategic Design and Bounded Contexts
- Defining the scope and responsibilities of bounded contexts.
- Mapping contexts and selecting appropriate integration patterns.
- Managing organizational boundaries, team structures, and data ownership.
Tactical Patterns — Constructing the Domain Model
- Understanding entities and managing their identity.
- Utilizing value objects and enforcing immutability.
- Structuring aggregates to define transaction boundaries.
Domain Services, Repositories, and Factories
- Determining when to employ domain services versus application services.
- Applying repository patterns while considering persistence strategies.
- Using factory patterns to handle complex object creation logic.
Modeling Complex Behavior and Invariants
- Establishing invariants to strictly enforce business rules.
- Implementing event-driven modeling and handling domain events.
- Exploring consistency models, including eventual consistency and sagas.
Aligning DDD with Architecture and Engineering
- Harmonizing DDD with microservices and modular monolith architectures.
- Designing APIs, implementing anti-corruption layers, and planning integrations.
- Validating domain logic through unit, integration, and contract tests.
Implementing DDD Across Teams and Organizations
- Facilitating domain discovery workshops and Event Storming sessions.
- Establishing and maintaining a shared ubiquitous language across teams.
- Evaluating outcomes and continuously refining the domain model.
Conclusion and Future Directions
Requirements
- Proficiency in object-oriented programming languages.
- A solid grasp of fundamental software architecture principles.
- Working familiarity with Agile development methodologies.
Target Audience
- Senior software developers
- Software architects
- Technical leads
21 Hours
Testimonials (1)
That we could you real life examples