Domain Driven Design - Tackling Complexity in the Heart of Software
About
Notes
Putting the Domain Model to Work
- Brainstorming/Knowledge Crunching session: To find a simple model for tackle the complexity
- Ubiquitous Language: for collaboration
- Hands-On Modellers: Binding model and implementation
- Technology Agnostic Architecture
The Building Blocks of a Model-Driven Design
- Smart UI Anti pattern
- Architecture Concerned: Layered Architecture, Hexagonal Architecture
- Domain Model Architecture: Entity, Value Object, Service, Modules
- Managing Lifecycle of Domain Object: Aggregate(Ownership), Factory, Repository
- Aggregate has the right to query the repository, and factory has the right to create a domain object by using Repository
- Separate Domain Model and database schema
- Separate artifacts for bounded context including database schema
Refactoring towards Deeper Insight
- Contineous Learning: Improve the Ubiquitous Language
- Refactoring towards deeper insight
- Supple Design
Strategic Design
- Bounded Context
- BC leads to Integration Problem -> Contineous Integration
- Comunication between BC
- Context Map
Further Design Pattern
- Aspect-oriented programming
- Command Query Responsibility Segregation
- Event Sourcing (Accounting Entry )
More Resouces: