Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DDD Basics: Bounded Contexts, Modelling

DDD Basics: Bounded Contexts, Modelling

Two of the six modules of the @DDDBE meetup on Strategic Domain-Driven Design on Feb 11, 2014 at @Intracto

1. Bounded Contexts
2. Modelling

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

330627d5f564b710721236077903ed60?s=128

Mathias Verraes

February 11, 2014
Tweet

Transcript

  1. DDD Basics February 11, 2014 - Olen, Belgium wifi: ITR-Events

    / domaindriven
  2. Kindly hosted by

  3. Community Talks Call for Proposals domaindriven.be/cfp

  4. Defining DDD (Yves) Ubiquitous Language (Jef) Bounded Contexts (Mathias) Context

    Mapping (Stijn) Modelling (Mathias) Starting/Selling DDD (Tom) Q&A / Lean Coffee
  5. Bounded Contexts

  6. Large complex systems: increased cognitive load

  7. Large complex systems: divergence in mental model

  8. Large complex systems: subtle nuances in meaning

  9. Avoid a big unified centralised model.

  10. Split into Bounded Contexts

  11. Benefits: clarity model integrity freedom to evolve separately

  12. Inspired by departments teams life cycles business processes …

  13. Make Bounded Context explicit pure independent consistent within its boundary

  14. Modelling

  15. Structural modelling Ontological

  16. Structural modelling inspired by persistence concerns

  17. Relational Normalised CRUD Anaemic

  18. Ask your Domain Expert about State Changes!

  19. Why does it change? When does it change? How often?

    Who causes it? By which rules? What consequences?
  20. ! ! The moving parts are more interesting than the

    stable parts
  21. ! ! A Domain Model is about:

  22. state + structure behaviour + change temporal roles + actors

    business rules + invariants causality + correlation interaction processes workflows + transitions intention + consequence failure …
  23. Modelling: Make the implicit explicit

  24. example ! Intentions: Command Objects Consequences: Domain Events

  25. @mathiasverraes http://verraes.net