SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
DDD Stratégique
Ou le minimum à connaître sur le
Domain Driven design
Jean Baptiste Dusseaut
@bodysplash
Pourquoi DDD ?
Technique Métier
Générique
Spécifique
Comment
Expert métier Développeur
Modèle du domaine
Ubiquitous language
Exprimé dans le code
open Voteer.Core.Common
type OpenPoll =
PendingPoll -> DomainResponse<OpenedPoll>
type CreatePoll =
CreationForm -> DomainResponse<PendingPoll>
Modèle du domaine
Modèle du domaine
-
« La carte n’est pas le territoire »
Stratégie TactiqueVersus
Agrégat Entité
Objet
valeur
Service
Entrepôt
Architecture ?
-Martin Fowler
« L’architecture est l’ensemble des choix qu’on
aurait aimé faire correctement »
Bounded context
Bounded context map
Context A Context B
Context CContext D
Types de relation
Conformist Shared kernel
Customer/
Supplier
Anti
corruption
layer
Separate
ways
Open host
Exemple
Exemple
JamshakeIdentity
Notification
JamStudio MaestroDiscussion
Samplary
Transcoder
Exemple, extended
SiteMaps Feeds
CRM Stats
Des options
Options business
Dev interne
Dev externe
Achat
VS
VS
Options d’architecture
CRUD
«DDD»
Tactique
CQRS
Event
sourcing
API Rest
gRPC…
Message
broker
Protocol
Fonctionnel Objet Dynamique Static
Options d’architecture
Options d’architecture
Options d’architecture
final EventBus eventBus =
EventBus.create(Environment.workDispatcher());
final Identity identity = new Identity();
final Samplary samplary = new Samplary(identity);
final Discussion discussion = new Discussion(identity, eventBus);
final Catalog catalog = new Catalog();
final JamStudio jamStudio = new JamStudio(samplary, identity,
eventBus);
final JamShake jamshake = new JamShake(identity, eventBus, samplary);
- M. Conway
« Organizations which design systems … are
constrained to produce designs which are copies
of the communication structures of these
organizations »
Options politiques
- ThoughtWorks
The 'Inverse Conway Maneuver' recommends
evolving your team and organizational structure
to promote your desired architecture. Ideally your
technology architecture will display isomorphism
with your business architecture.
Options politiques
To DDD or not to DDD
Conclusion
Inversion de contrôle, au niveau de l’architecture
Lean architecture
Bounded context : c’est le minimum à savoir
Une conf qu’elle est bien pour y venir

Contenu connexe

Similaire à DDD - Le minimum à savoir

Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven DesignDNG Consulting
 
Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Fabian Vilers
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM France Lab
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008guest33ece8
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Talents Nights Paris le 27 juin : métiers du Digital et du Numérique
Talents Nights Paris le 27 juin : métiers du Digital et du NumériqueTalents Nights Paris le 27 juin : métiers du Digital et du Numérique
Talents Nights Paris le 27 juin : métiers du Digital et du NumériqueCorinne Maugrenier
 
Talents Nights - Mercredi 27 Juin 2018
Talents Nights - Mercredi 27 Juin 2018 Talents Nights - Mercredi 27 Juin 2018
Talents Nights - Mercredi 27 Juin 2018 Guilaine Julmat
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
ReBuild 2019 - Gouvernance Financière 1.0
ReBuild 2019 - Gouvernance Financière 1.0ReBuild 2019 - Gouvernance Financière 1.0
ReBuild 2019 - Gouvernance Financière 1.0Benoît SAUTIERE
 
DU DEVOPS AU FASTLAB
DU DEVOPS AU FASTLABDU DEVOPS AU FASTLAB
DU DEVOPS AU FASTLABTREEPTIK
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Thomas Choppy
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéCARA_Lyon
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010François Wauquier
 
Global Azure Bootcamp GAB Paris 2017
Global Azure Bootcamp GAB Paris 2017Global Azure Bootcamp GAB Paris 2017
Global Azure Bootcamp GAB Paris 2017Alex Danvy
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!Alexandre Touret
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data VirtualizationDenodo
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0Cedric Vidal
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Arnaud Auroux
 

Similaire à DDD - Le minimum à savoir (20)

Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)Introduction au BDD (Behavior Driven Development)
Introduction au BDD (Behavior Driven Development)
 
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
IBM Bluemix Paris Meetup #22-20170315 Meetup @VillagebyCA- Bluemix, présent &...
 
Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008Alt.Net France - Domain Driven Design - 2 Dec 2008
Alt.Net France - Domain Driven Design - 2 Dec 2008
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Talents Nights Paris le 27 juin : métiers du Digital et du Numérique
Talents Nights Paris le 27 juin : métiers du Digital et du NumériqueTalents Nights Paris le 27 juin : métiers du Digital et du Numérique
Talents Nights Paris le 27 juin : métiers du Digital et du Numérique
 
Talents Nights - Mercredi 27 Juin 2018
Talents Nights - Mercredi 27 Juin 2018 Talents Nights - Mercredi 27 Juin 2018
Talents Nights - Mercredi 27 Juin 2018
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
ReBuild 2019 - Gouvernance Financière 1.0
ReBuild 2019 - Gouvernance Financière 1.0ReBuild 2019 - Gouvernance Financière 1.0
ReBuild 2019 - Gouvernance Financière 1.0
 
DU DEVOPS AU FASTLAB
DU DEVOPS AU FASTLABDU DEVOPS AU FASTLAB
DU DEVOPS AU FASTLAB
 
Ged Open Source - Documation 2010
Ged Open Source - Documation 2010Ged Open Source - Documation 2010
Ged Open Source - Documation 2010
 
BDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilitéBDD (Behavior Driven Development) - Une voie vers l'agilité
BDD (Behavior Driven Development) - Une voie vers l'agilité
 
Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010Domain Driven Design - Agile France 2010
Domain Driven Design - Agile France 2010
 
Global Azure Bootcamp GAB Paris 2017
Global Azure Bootcamp GAB Paris 2017Global Azure Bootcamp GAB Paris 2017
Global Azure Bootcamp GAB Paris 2017
 
[TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte![TNT19] Hands on: Objectif Top Architecte!
[TNT19] Hands on: Objectif Top Architecte!
 
Session découverte de la Data Virtualization
Session découverte de la Data VirtualizationSession découverte de la Data Virtualization
Session découverte de la Data Virtualization
 
MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0MD Day 2009 - Cédric Vidal - 1.0
MD Day 2009 - Cédric Vidal - 1.0
 
Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8Réutilisation de code entre windows 8 et windows phone 8
Réutilisation de code entre windows 8 et windows phone 8
 

DDD - Le minimum à savoir