DDD enhances modeling through a total approach for building software for complex domains. With the various tools and strategies in the DDD architecture, the designer will have a more effective approach to domain modeling. In this course, you will learn additional information regarding further components, such as architecture, entities, value objects, services, and domain events. Finally you will learn about the concepts of modules, model-driven design, and aggregates.
Learning Objectives
DDD Architecture
- start the course
- recognize the concept of layered architecture in DDD
- describe event-driven architecture
- describe aspects of representational state transfer and why it's used
- describe the CQRS model
DDD Entities
- describe entities in DDD
- define the unique identity attribute
- describe best practices for entity modeling
Working with Value Objects
- describe value objects and characteristics
- explain how to implement value objects
DDD Services
- define domain services
- explain the domain service within application layer
- explain services in the domain layer
Domain Events
- describe domain events and when and why to use them
- recognize the various core concepts of domain events
- describe domain event handling
Modules
- describe the role of modules in DDD
- recognize the purposes and practices of using modules in DDD
- describe the purpose of agile models in DDD
Model-driven Design
- describe the role of model-driven design
- describe the differences and similarities between domain-driven and model-driven design
DDD Aggregates
- describe the role of aggregates
- describe the benefits of aggregates
- recognize the various guidelines when using aggregates
- demonstrate creating a root entity with aggregates
Practice: DDD Concepts and Implementations
- recognize the components of DDD