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
Fundamentals of Domain-Driven Design
- Core principles and the rationale behind DDD.
- Establishing a ubiquitous language and collaborating effectively with domain experts.
- Differentiating between core, supporting, and generic subdomains.
Strategic Design and Managing Bounded Contexts
- Defining bounded contexts and clarifying their respective responsibilities.
- Utilizing context mapping and various integration patterns.
- Addressing team structures, organizational boundaries, and data ownership issues.
Tactical Patterns — The Structural Elements of the Domain Model
- Managing entities and their identity.
- Implementing value objects and ensuring immutability.
- Structuring aggregates and defining transaction boundaries.
Utilizing Domain Services, Repositories, and Factories
- Determining when to employ domain services versus application services.
- Applying repository patterns and considering persistence strategies.
- Using factory patterns to manage complex object creation.
Modeling Complex Behaviors and Business Invariants
- Designing invariants and enforcing critical business rules.
- Implementing event-driven modeling and domain events.
- Understanding consistency models, including eventual consistency and sagas.
Aligning DDD with Architectural and Engineering Standards
- Harmonizing DDD with microservices and modular monolith architectures.
- Designing APIs, implementing anti-corruption layers, and developing integration strategies.
- Testing domain logic through unit tests, integration tests, and contract tests.
Implementing DDD Across Teams and Organizations
- Conducting domain discovery workshops and Event Storming sessions.
- Creating and sustaining a shared ubiquitous language across multiple teams.
- Measuring effectiveness and continuously refining the domain model.
Recap and Future Directions
Requirements
- Proficient programming experience in object-oriented languages.
- Solid grasp of software architecture principles.
- Working familiarity with Agile development methodologies.
Target Audience
- Senior developers.
- Software architects.
- Technical leads.
21 Hours
Testimonials (1)
That we could you real life examples