Domain-Driven Design Basics

2,545 views

Published on

DDD Basics session with the Domain-Driven Design Belgium community. We only covered Strategic DDD, and split up the work amongst the five founders of the group:

@yreynhout (Defining Domain-Driven Design)

@JefClaes (Ubiquitous Language)

@ONE75 (Context Mapping)

@ToJans (Selling Domain-Driven Design to the business)

@mathiasverraes (Bounded Contexts and Modelling).

More at http://verraes.net/ or http://twitter.com/mathiasverraes

Published in: Technology, Business

Domain-Driven Design Basics

  1. 1. DDD Basics February 11, 2014 - Olen, Belgium wifi: ITR-Events / domaindriven
  2. 2. Kindly hosted by
  3. 3. Community Talks Call for Proposals domaindriven.be/cfp
  4. 4. Defining DDD (Yves) Ubiquitous Language (Jef) Bounded Contexts (Mathias) Context Mapping (Stijn) Modelling (Mathias) Starting/Selling DDD (Tom) Q&A / Lean Coffee
  5. 5. Bounded Contexts
  6. 6. Large complex systems: increased cognitive load
  7. 7. Large complex systems: divergence in mental model
  8. 8. Large complex systems: subtle nuances in meaning
  9. 9. Avoid a big unified centralised model.
  10. 10. Split into Bounded Contexts
  11. 11. Benefits: clarity model integrity freedom to evolve separately
  12. 12. Inspired by departments teams life cycles business processes …
  13. 13. Make Bounded Context explicit pure independent consistent within its boundary
  14. 14. Modelling
  15. 15. Structural modelling Ontological
  16. 16. Structural modelling inspired by persistence concerns
  17. 17. Relational Normalised CRUD Anaemic
  18. 18. Ask your Domain Expert about State Changes!
  19. 19. Why does it change? When does it change? How often? Who causes it? By which rules? What consequences?
  20. 20. ! ! The moving parts are more interesting than the stable parts
  21. 21. ! ! A Domain Model is about:
  22. 22. state + structure behaviour + change temporal roles + actors business rules + invariants causality + correlation interaction processes workflows + transitions intention + consequence failure …
  23. 23. Modelling: Make the implicit explicit
  24. 24. example ! Intentions: Command Objects Consequences: Domain Events
  25. 25. @mathiasverraes http://verraes.net

×