Date post: | 24-May-2015 |
Category: |
Technology |
Upload: | tom-janssens |
View: | 472 times |
Download: | 2 times |
Common DDD pitfalls
@ToJans - 2014
Str
ate
gic
Tactica
l
Str
ate
gic
Tactica
l
Infrastructure Str
ate
gic
Tactica
l
Infrastructure Str
ate
gic
Selling it
Tactica
l
Infrastructure Str
ate
gic
Selling it
Genera
l
Str
ate
gic
Bounded contexts
Str
ate
gic
Bounded contexts
Str
ate
gic
Ignoring bounded contexts
Str
ate
gic
Ignoring bounded contexts
Str
ate
gic
Conway’s law
Str
ate
gic
Conway’s law
Str
ate
gic
“Gedankenexperiment”
Str
ate
gic
“Gedankenexperiment”
Str
ate
gic
Lack of a domain expert
Str
ate
gic
Lack of a domain expert
Str
ate
gic
Bounded contexts
A lot Little
POV
Amount
Up- / Downstream A lot Little
Contracts
Dependencies
Some things that work *
* n = 1
Tactica
l
Tactica
l
Tactica
l
DDD for non-core domains
Tactica
l
DDD for non-core domains
Tactica
l Ignoring some aspects
Tactica
l Ignoring some aspects
Tactica
l
Repositories, exposing state
Tactica
l
Repositories, exposing state
https://www.facebook.com/Jeroom.Inc
Tactica
l
In repos, “Tell, don’t ask”
Tactica
l
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
Str
ate
gic
• Don’t ignore bounded contexts
• Understand Conway’s Law
• Think first, act later
• Have domain experts
Craft BCs and make them explicit
Tactica
l
• 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
Genera
l
Genera
l
Genera
l
Genera
l
Genera
l
Genera
l
Genera
l
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