Domain Driven Design
(...with Flask)
Michael DiBernardo
12-Sep-2012 @ DjangoToronto
Slide 2
Slide 2 text
What is DDD?
Slide 3
Slide 3 text
Something familiar
• Domain driven design separates the model
layer ("M") of MVC into:
• an application tier,
• a domain tier,
• and an infrastructure tier.
(opentaps project docs)
Slide 4
Slide 4 text
Domain is the focus
Slide 5
Slide 5 text
POPOs
Slide 6
Slide 6 text
CODE
Slide 7
Slide 7 text
When to use it?
• Non-trivial domain (i.e. not this demo)
• Iterative process
• Access to domain experts / users
• Integration with external interfaces
Slide 8
Slide 8 text
“Indeed, one of the ways of establishing
control over a system is to enforce link-
cutting until the graph is hierarchical.”
- Fred Brooks (paraphrase from MMM)
Slide 9
Slide 9 text
Model
Services
Scary outside world
Application
Repos
Presentation
(Highly idealized)
Slide 10
Slide 10 text
Thoughts
• POPOs in Django. How? Why?
• The “secondary project”
• Web as platform