Common DDD pitfalls
@ToJans - 2014
Strategic
Tactical
Strategic
TacticalInfrastructure
Strategic
TacticalInfrastructure
Strategic
Sellingit
TacticalInfrastructure
Strategic
Sellingit
General
Strategic Bounded contexts
Strategic Bounded contexts
Strategic Ignoring bounded contexts
Strategic Ignoring bounded contexts
Strategic Conway’s law
Strategic Conway’s law
Strategic “Gedankenexperiment”
Strategic “Gedankenexperiment”
Strategic Lack of a domain expert
Strategic Lack of a domain expert
Strategic Bounded contexts A lot Little
POV  
Amount  
Up- / Downstream A lot Little
Contracts  
Dependencies  
Some things that work *
* n = 1
Tactical
Tactical
Tactical
DDD for non-core domains
Tactical
DDD for non-core domains
Tactical
Ignoring some aspects
Tactical
Ignoring some aspects
Tactical
Repositories, exposing state
Tactical
Repositories, exposing state
https://www.facebook.com/Jeroom.Inc
Tactical
In repos, “Tell, don’t ask”
Tactical
In repos, “Tell, don’t ask”
… but don’t overdo it
Infrastructure
Infrastructure
BDUF – what you built
Infrastructure
BDUF – what you need
Infrastructure
Frameworks <> Libraries
Infrastructure
Frameworks <> Libraries
Infrastructure
Frameworks & Libraries: too generic
Infrastructure
Generic frameworks & Libraries => hacks
Infrastructure
Eventual consistency: do you need it?
Infrastructure
Eventual consistency: do you need it?
Infrastructure
Anything: do you need it?
”Il semble que la perfection soit atteinte
non quand il n'y a plus rien à ajouter,
mais quand il n'y a plus rien à retrancher.”
Antoine de Saint-Exupéry
Selling it
Selling DDD to your peers & bosses
Selling it
Tough
Selling it
Really tough
Selling it
This is a different presentation
Selling it
… but I’ll show you the recap
And now it’s time for a
And now it’s time for a
Recap
And now it’s time for a
Strategic
• Don’t ignore bounded contexts
• Understand Conway’s Law
• Think first, act later
• Have domain experts
Craft BCs and make them explicit
Tactical
• Only in core domains
• Find all ways to model them
• Repositories = domain only
• Repositories = Tell, don’t ask
Infrastructure
• Don’t build a BDUF
• Frameworks <> libraries
• Avoid hacks
• Aim for simplicity, not ease of building
Selling it
• Don’t force feed
• Lead by example
• One step at a time
General
General
General
General
General
General
General
HAVE FUN!
And now it’s time for
Questions
And now it’s time for
What was the background seeded by?
Brightness was upped
Image was colorized
Color was removed
Huge blur was applied
Common ddd pitfalls
Common ddd pitfalls
Common ddd pitfalls
Common ddd pitfalls
Common ddd pitfalls

Common ddd pitfalls