Slide 1

Slide 1 text

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

Slide 11

Slide 11 text

https://github.com/MichaelDiBernardo/ddd-flask-example