DDD Quick Intro

"The Blue Book"

Domain Driven Design:

The important parts (IMHO)

  • Focus on the domain of the problem
  • Collaboration with the domain experts
  • Usage of Ubiquitous Language
  • Recognition of Bounded Contexts

Music Idol

Music Idol

The Domain

Help all the teams involved in the production do their job quicker, easier and with better quality...

We didn't really know what we were supposed to create

Music Idol

The Domain Experts

  • the casting team
  • the assistant directors
  • the wardrobe and makeup people
  • the producers

Music Idol

The Ubiquitous Language

  • contestant
  • list (of contestants)
  • location
  • room (blue, red, green...)
  • tape
  • time code
  • rehearsal

Music Idol

Bounded Contexts

  • contestants sign-up
  • contestant communication
  • casting management
  • video tapes management
  • user roles management

Terms

  • Entities
  • Value Objects
  • Aggregates
  • Aggregate Roots
  • Services
  • Application services
  • Repositories
  • Factories

Terms (tech. perspective)

  • Entities - mutable objects
  • Value Objects - immutable objects
  • Aggregates - a bunch of associated objects
  • Aggregate Roots - the entry object to the upper
  • Services - functions
  • Repositories - interfaces for digging through entities
  • Factories - Factory objects

Extra tech stuff

  • Application Services / Use Cases
  • Command Query Responsibility Segregation
  • Event sourcing
  • Hexagonal / Onion / Ports and Adapters Architecture
  • Screaming Architecture
  • Action-Domain-Responder