DDD distiled quickly

Mirosław Pragłowski / @mpraglowski

A model is a selectively simplified and consciously structured form of knowledge.

Eric Evans

OOP

... at least what I was told long time ago...

Value object

No identity

Values comparable

Immutable

Entity

Domain object with unique identity.

Usually have mutable state.

Aggregate

Set of composed domain objects defining single consistency unit.

Root of the objects hierarchy is an aggregate root. Usually it is used as conceptual name of an aggregate.

My mistakes

Data is not your model

the model is not the diagram

Eric Evans

A model is a simplification. It is an interpretation of reality that abstracts the aspects relevant only to solving the problem at hand.

Eric Evans

All models are wrong but some are useful

George Box

Tactical vs Strategic

Tactical patterns

Value object

Entity

Aggregate / Aggregate Root

Domain Event

Repository

...

Focus on “items” used to build model.

Strategic patterns

Bounded contexts

Context maps

Subdomains

...

Focus on concepts, on communication, definition of ubiquitous language.

Bounded context & Ubiquitous language

Ubiquitous language

the shared language

strict

coined by the team

in context of...

Bounded context

conceptual boundary

semantic boundary

Subdomains

Core domain

Supporting subdomain

Generic domain

My mistakes

There can be only one

DDD is an approach that even helps you determine when you don’t need it
The DDD paradox by Emilien Pecoul

My mistakes

Redo the existing

If programmers are not interested in the domain, they learn only what the system should do, not the principles behind it.
Eric Evans
Software development is a learning process, working code is a side effect

Alberto Brandolini

Books

Domain-Driven Design: Tackling Complexity in the Heart of SoftwareEric Evans

Implementing Domain-Driven DesignVaughn Vernon

Patterns of Enterprise Application ArchitectureMartin Fowler

Enterprise Integration PatternsGregor Hohpe

People

Eric Evans @ericevans0

Vaughn Vernon @VaughnVernon

Greg Young @gregyoung

Udi Dahan @UdiDahan

Alberto Brandolini @ziobrando

Mathias Verraes @mathiasverraes

DDD Communities

THX

Available at:
http://praglowski.com/presentations/ddd-distiled-quickly