Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
DDD Basics - Kortrijk Edition June 10, 2014 - Belgium @DDDBE — http://domaindriven.be
Slide 2
Slide 2 text
Kindly hosted by
Slide 3
Slide 3 text
We’ve got some great (international) speakers, but we need locations! ping @DDDBE http://domaindriven.be
Slide 4
Slide 4 text
Aspects of Domain-Driven Design
Slide 5
Slide 5 text
Tactical DDD ! design patterns
Slide 6
Slide 6 text
Collaborative DDD ! model storming
Slide 7
Slide 7 text
Strategic DDD ! complexity, scale
Slide 8
Slide 8 text
Defining DDD (Yves) Ubiquitous Language (Jef) Bounded Contexts (Mathias) Context Mapping (Stijn) Modelling (Mathias) Starting/Selling DDD (Tom) Q&A / Lean Coffee
Slide 9
Slide 9 text
Bounded Contexts
Slide 10
Slide 10 text
“When something is wrong, something is too big.” — Leopold Kohr
Slide 11
Slide 11 text
Large complex systems: harder to reason about
Slide 12
Slide 12 text
Large complex systems: your mental model != my mental model
Slide 13
Slide 13 text
Large complex systems: subtle nuances in meaning
Slide 14
Slide 14 text
Avoid a big unified centralised model.
Slide 15
Slide 15 text
Classic example: What is a product?
Slide 16
Slide 16 text
Split into Bounded Contexts
Slide 17
Slide 17 text
Make Bounded Context explicit pure independent consistent within its boundary
Slide 18
Slide 18 text
Benefits: clarity model integrity freedom to evolve separately
Slide 19
Slide 19 text
Drawbacks: short term convenience choosing the boundaries how big is the problem?
Slide 20
Slide 20 text
Tricks
Slide 21
Slide 21 text
Inspired by departments teams life cycles business processes
Slide 22
Slide 22 text
What if this was an off-the-shelf solution?
Slide 23
Slide 23 text
How much communication goes on between Bounded Contexts?
Slide 24
Slide 24 text
Visualize! ! Context Mapping Model Storming
Slide 25
Slide 25 text
Modelling
Slide 26
Slide 26 text
Structural modelling describes state
Slide 27
Slide 27 text
Structural modelling inspired by persistence concerns
Slide 28
Slide 28 text
Relational Normalised CRUD Anaemic
Slide 29
Slide 29 text
“CRUD is our industry’s grand failure.” — Greg Young
Slide 30
Slide 30 text
Ask your Domain Expert about State Changes!
Slide 31
Slide 31 text
Why does it change? When does it change? How often? Who causes it? By which rules? What consequences?
Slide 32
Slide 32 text
! ! The moving parts are more interesting than the stable parts
Slide 33
Slide 33 text
! ! A Domain Model is about:
Slide 34
Slide 34 text
state + structure behaviour + change temporal roles + actors business rules + invariants causality + correlation interaction processes workflows + transitions intention + consequence failure …
Slide 35
Slide 35 text
Modelling: Make the implicit explicit
Slide 36
Slide 36 text
example ! Intentions: Command Objects Consequences: Domain Events
Slide 37
Slide 37 text
Intention Protection Interpretation Automation user sends Commands manage processes domain model sends Events, guards consistency create read models from Events DTO Commands Events
Slide 38
Slide 38 text
@mathiasverraes http://verraes.net