SlideShare a Scribd company logo
1 of 65
Download to read offline
Démystifions
le Domain Driven Design
Maxime Sanglan-Charlier - @__MaxS__
M. Baudouin © Côte-d'Or Tourisme
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
USER INTERFACE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
USER INTERFACE
ORM
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« […] when you look at the behavior, and you realize that there is hardly
any behavior on these objects, making them little more than bags of
getters and setters.
The fundamental horror of this anti-pattern is that it's so contrary to the
basic idea of object-oriented design; which is to combine data and
process together.
Many people think that anemic objects are real objects, and thus
completely miss the point of what object-oriented design is all about »
Martin Fowler - 2003
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
USER INTERFACE
ORM
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
USER INTERFACE
ORM
Framework
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DATA ACCESS LAYER
BUSINESS LAYER
USER INTERFACE
ORM
Framework
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
THE BIG BALL OF MUD
© yalumbagardener
“haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle”
Brian Foote & Joseph Yoder - © 1999
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
OneHundredAcorns.com
@__MaxS__
Architecte
Développeur
Speaker
Bloggeur
Formateur
Organisateur
Facilitateur
Recruteur
Bagger
Maxime Sanglan-Charlier
ncrafts.io
© dddeurope.com
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
DOMAIN DRIVEN DESIGN
CONCEPTION PILOTÉE par LE DOMAINE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© larousse.fr
LE DOMAINE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© elmaalouf
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« You can think of DDD as a development philosophy; it promotes a new
domain-centric way of thinking. It is the learning process, not the end goal,
which is the greatest strength of DDD »
Scott Millet
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
BOÎTE À OUTILS
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© pixabay.com
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« Software development is a learning process, working code is a side effect. »
Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« It's developer's (mis)understanding, not expert knowledge that gets released
in production. »
Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© alanacdehaan.com
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Event
Market
DEV WAY BIZ WAY
Player
Punter
Payment Settlement
Legal
Regulatory
Panel
Board Game
Trigger Bonus
Promo
on round
Trigger
Bonus
Bonus
attributed
after a promo
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« For every good design there must be at least three bad ones. »
Eric Evans
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© feliciardavis.com
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
CORE DOMAIN
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Vladik Khononov
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
STRATEGIC
VS
TACTICAL
PATTERNS
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
STRATEGIC
PATTERNS
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
M. Baudouin © Côte-d'Or Tourisme
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« Good fences make good neighbors. »
Eric Evans
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
PROBLEM SPACE
VS
SOLUTION SPACE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Scott Millet
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Scott Millet
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
TACTICAL
PATTERNS
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Eric Evans
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Scott Millet
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© pixabay.com
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Thomas Coopman
© Thomas Coopman
Unit of consistency that
guards business
invariants and has a
single entry point (oop)
Unit of decision making
that helps keep the system
in a consistent state
without it becoming a
bottleneck
Transactionable boundary
that protects business
invariants
A collection of domain
objects that can be viewed
as a single object for
managing consistency and
business invariants
The thing you’ll never
do right !
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
PHILOSOPHIE
DE
COLLABORATION
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
APPROCHE
DOMAIN-CENTRIC
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
CE N’EST PAS UNE
ARCHITECTURE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
CE N’EST PAS UN
LIVRE SUR
LA POO
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
CE N’EST PAS UNE
SILVER BULLET
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
« What is the value of code written on time, and on budget by someone who
doesn’t understand the problem? »
Alberto Brandolini
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
MERCI !
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
RÉFÉRENCES
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
• The Big Ball of Mud, Brian Foote & Joseph Yoder
• AnemicDomainModel, Martin Fowler
• Domain-Driven Design: Tackling Complexity in the Heart of Software, Eric Evans
• Patterns, Principles, and Practices of Domain-Driven Design, Scott Millet with Nick Tune
• Revisiting the Basics of DDD, Vladik Khononov
• Eventstorming.com
• Introducing EventStorming, Alberto Brandolini
• Il n’y a pas de bon modèle métier, Grégory Weinbach
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
ANNEXE
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Eric Evans
Bounded Context VS Sub Domain
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
© Eric Evans
Bounded Context VS Sub Domain
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__
Démystifions le DDD Maxime Sanglan-Charlier / @__MaxS__

More Related Content

What's hot

Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache Spark
Caserta
 

What's hot (20)

Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Mastering Customer Data on Apache Spark
Mastering Customer Data on Apache SparkMastering Customer Data on Apache Spark
Mastering Customer Data on Apache Spark
 
LKCE19 Klaus Leopold - Flight Levels in Action
LKCE19 Klaus Leopold - Flight Levels in ActionLKCE19 Klaus Leopold - Flight Levels in Action
LKCE19 Klaus Leopold - Flight Levels in Action
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
RethinkingAgile_AAC2019
RethinkingAgile_AAC2019RethinkingAgile_AAC2019
RethinkingAgile_AAC2019
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Implementing Microservices by DDD
Implementing Microservices by DDDImplementing Microservices by DDD
Implementing Microservices by DDD
 
Cloud native principles
Cloud native principlesCloud native principles
Cloud native principles
 
Introducing Clean Architecture
Introducing Clean ArchitectureIntroducing Clean Architecture
Introducing Clean Architecture
 
Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
MicroService Architecture
MicroService ArchitectureMicroService Architecture
MicroService Architecture
 
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Beyond Agile with Team Topologies
Beyond Agile with Team TopologiesBeyond Agile with Team Topologies
Beyond Agile with Team Topologies
 
Mucon 2019: OOps I DDD it again and again
Mucon 2019: OOps I DDD it again and againMucon 2019: OOps I DDD it again and again
Mucon 2019: OOps I DDD it again and again
 
2018-11-13 Don Reinertsen: An Introduction to Second Generation Lean Product ...
2018-11-13 Don Reinertsen: An Introduction to Second Generation Lean Product ...2018-11-13 Don Reinertsen: An Introduction to Second Generation Lean Product ...
2018-11-13 Don Reinertsen: An Introduction to Second Generation Lean Product ...
 

More from Maxime Sanglan-Charlier

More from Maxime Sanglan-Charlier (8)

The DDD Starter Modelling Process
The DDD Starter Modelling ProcessThe DDD Starter Modelling Process
The DDD Starter Modelling Process
 
Le Domain Driven Design, comment bien démarrer ?
Le Domain Driven Design, comment bien démarrer ?Le Domain Driven Design, comment bien démarrer ?
Le Domain Driven Design, comment bien démarrer ?
 
Mob programming - Promesses tenues ?
Mob programming - Promesses tenues ?Mob programming - Promesses tenues ?
Mob programming - Promesses tenues ?
 
Atelier eventstorming - Agile Tour Nantes 2018
Atelier eventstorming - Agile Tour Nantes 2018Atelier eventstorming - Agile Tour Nantes 2018
Atelier eventstorming - Agile Tour Nantes 2018
 
Does Your Code Speak Business - #swcraftnantes
Does Your Code Speak Business - #swcraftnantesDoes Your Code Speak Business - #swcraftnantes
Does Your Code Speak Business - #swcraftnantes
 
Atelier Event Storming - Piece of Make - Nantes
Atelier Event Storming - Piece of Make - NantesAtelier Event Storming - Piece of Make - Nantes
Atelier Event Storming - Piece of Make - Nantes
 
Mob programming, Promesses tenues ? Breizcamp 2016
Mob programming, Promesses tenues ? Breizcamp 2016Mob programming, Promesses tenues ? Breizcamp 2016
Mob programming, Promesses tenues ? Breizcamp 2016
 
Does Your Code Speak Business
Does Your Code Speak BusinessDoes Your Code Speak Business
Does Your Code Speak Business
 

Recently uploaded

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 

Démystifions le Domain Driven Design