One major benefit to using Domain-driven Design is the ability to integrate various other sources and processes. This course will explore and guide you through the ways to do this. You will be introduced to communication in Domain-driven Design followed by factories, repositories, and refactoring. Finally, you'll learn about methodologies and application architecture layers.
Learning Objectives
Application Architecture Layers
- start the course
- recognize the roles of various layers in the DDD architecture
- recognize the purpose of layered architecture in DDD
- describe the use of service layers of DDD
Communication in DDD
- describe the differences between domain experts and stakeholders
- recognize the domain model boundaries and the effects
- describe the use of ubiquitous language in DDD
- describe best practices for communication in DDD
- describe the benefits of modeling and communication in DDD
- explain best practices for documenting communication in DDD
DDD Factories
- describe factories and how they're used in DDD
- describe the benefits of factories
- describe the interface of factories
- explain the rationale for choosing factories
Repositories
- explain repositories and their uses
- explain the benefits of repositories
- explain the considerations for using relational databases
Refactoring
- describe the concept of refactoring
- explain the uses and levels of refactoring in DDD
- explain the concept of deep models in DDD
- explain the concept of supple design in DDD
- explain the purpose of the discovery process in DDD
Development Methodologies
- explain the linkages between Behavior-driven Development and Domain-driven Development
- describe the use of event storming
- describe the purposes of transaction scripting vs. DDD
Practice: DDD Expansion and Integration
- recognize the concepts of various design patterns in DDD