My Notebook

Pursuit of Clarity.

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: