SlideShare une entreprise Scribd logo
Domain Driven Design                                  & Agilité ...  C omprendre,  C ommuniquer,  C oder François Wauquier Nicolas Martignole
Il est difficile de capturer le besoin présent
Il est impossible de capturer le besoin futur
Les méthodes Agiles exploitent le changement comme avantage compétitif en livrant fréquemment
  Il etait une fois un projet J'ai un besoin Je réalise un logiciel
[object Object],[object Object],[object Object],[object Object],Vis ma vie de développeur
[object Object],[object Object],[object Object],Vis ma vie de client
Retour sur le Manifeste Agile
  Retour sur le manifeste Agile ,[object Object],[object Object],[object Object],[object Object]
  Accepter le changement ,[object Object],[object Object]
  Design = Conception ,[object Object],[object Object],[object Object],[object Object]
  Design & design ,[object Object],[object Object],[object Object]
Domain Driven Design
  Ubiquitous Language ,[object Object],[object Object],[object Object],[object Object]
  Core Domain ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
  Programmation en couches ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Story
  Domain Building Blocks ,[object Object],[object Object],[object Object],[object Object]
[object Object],DDD et l'écosystème de votre projet Les Strategics Patterns
Votre projet et les autres équipes ,[object Object],[object Object],[object Object],[object Object],[object Object],Confiance
[object Object],Amont / Aval
[object Object],Amont / Aval
[object Object],Amont / Aval
  Pratiques Agiles et DDD ?
  Test Driven Development ,[object Object],[object Object],[object Object]
  Refactoring ,[object Object],[object Object],[object Object]
  Test Driven Requirement ,[object Object],[object Object],[object Object]
  Pair Programming ,[object Object],[object Object],[object Object],[object Object],[object Object]
  Workshop ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
  Vers la source du besoin
  Un peu de code ? Crédit photo : ignWallah http://www.flickr.com/photos/designwallah/ Licences Commons Creatives 2.0
sans DDD class ShipServiceImpl implements ShipService{      ShipDao shipDao;      void  navigate (Ship ship){          //navigation rules...          shipDao.saveOrUpdate(ship);      }      void setShipDao(ShipDao shipDao){          this.shipDao = shipDao;      } } class Ship{     }
  avec DDD class ShipService{           void  navigate (Ship ship){            ship.navigate();           }   } @Entity class Ship {      void navigate(){          //navigation rules...          save();      } }
  Conclusion ,[object Object],[object Object],[object Object]
  Domain Driven Design  Eric Evans ™ ,[object Object]
  Merci ,[object Object],[object Object]

Contenu connexe

En vedette

What is "Domain Driven Design" and what can you expect from it?
What is "Domain Driven Design" and what can you expect from it?What is "Domain Driven Design" and what can you expect from it?
What is "Domain Driven Design" and what can you expect from it?
Tom Janssens
 
Felipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To OoFelipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To Oo
deimos
 
Nos Vacances En France Juillet 2007
Nos Vacances En France Juillet 2007Nos Vacances En France Juillet 2007
Nos Vacances En France Juillet 2007smargeridon
 
Convertir vos visiteurs Web en clients
Convertir vos visiteurs Web en clientsConvertir vos visiteurs Web en clients
Convertir vos visiteurs Web en clients
azzuro75
 
Diapositivas Nivel Internet
Diapositivas Nivel InternetDiapositivas Nivel Internet
Diapositivas Nivel Internet
lourdesb1
 
Elements & Principles
Elements & PrinciplesElements & Principles
Elements & Principles
auttendorfer
 
Panel Magmaconf
Panel MagmaconfPanel Magmaconf
Panel Magmaconf
Ismael G Marín C
 
Penetración y crecimiento del Internet
Penetración y crecimiento del InternetPenetración y crecimiento del Internet
Penetración y crecimiento del Internet
lourdesb1
 
Erin Valusek!
Erin Valusek!Erin Valusek!
Erin Valusek!
binxtothejarjar
 
Maison De MaîTre Diaporama
Maison De MaîTre DiaporamaMaison De MaîTre Diaporama
Maison De MaîTre Diaporama
maisondemaitre.laferte
 
Manual de uso Deezine
Manual de uso DeezineManual de uso Deezine
Manual de uso Deezine
Fuel.cat
 
Uload
UloadUload
Uload
Luis Diaz
 
Dénombrement
DénombrementDénombrement
Habitat
HabitatHabitat
Habitat
Aurélie USAI
 
Anniversaire Kiki 1
Anniversaire Kiki 1Anniversaire Kiki 1
Anniversaire Kiki 1
guest0c71ce
 
Salon Solutions CNIT La Défense.
Salon Solutions CNIT La Défense.Salon Solutions CNIT La Défense.
Salon Solutions CNIT La Défense.
Reporter du monde RDM-ROW Reporter Of World
 
Bibliothèque publique & Communauté
Bibliothèque publique & CommunautéBibliothèque publique & Communauté
Bibliothèque publique & Communauté
Antonin Benoît DIOUF
 
Computadora 6a
Computadora  6aComputadora  6a
Computadora 6a
Stefania
 
Urbe
UrbeUrbe

En vedette (20)

What is "Domain Driven Design" and what can you expect from it?
What is "Domain Driven Design" and what can you expect from it?What is "Domain Driven Design" and what can you expect from it?
What is "Domain Driven Design" and what can you expect from it?
 
Felipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To OoFelipe Rodrigues Ddd The Way Back To Oo
Felipe Rodrigues Ddd The Way Back To Oo
 
Nos Vacances En France Juillet 2007
Nos Vacances En France Juillet 2007Nos Vacances En France Juillet 2007
Nos Vacances En France Juillet 2007
 
Convertir vos visiteurs Web en clients
Convertir vos visiteurs Web en clientsConvertir vos visiteurs Web en clients
Convertir vos visiteurs Web en clients
 
Diapositivas Nivel Internet
Diapositivas Nivel InternetDiapositivas Nivel Internet
Diapositivas Nivel Internet
 
Elements & Principles
Elements & PrinciplesElements & Principles
Elements & Principles
 
Panel Magmaconf
Panel MagmaconfPanel Magmaconf
Panel Magmaconf
 
Penetración y crecimiento del Internet
Penetración y crecimiento del InternetPenetración y crecimiento del Internet
Penetración y crecimiento del Internet
 
Erin Valusek!
Erin Valusek!Erin Valusek!
Erin Valusek!
 
Maison De MaîTre Diaporama
Maison De MaîTre DiaporamaMaison De MaîTre Diaporama
Maison De MaîTre Diaporama
 
Manual de uso Deezine
Manual de uso DeezineManual de uso Deezine
Manual de uso Deezine
 
Uload
UloadUload
Uload
 
Dénombrement
DénombrementDénombrement
Dénombrement
 
Habitat
HabitatHabitat
Habitat
 
Anniversaire Kiki 1
Anniversaire Kiki 1Anniversaire Kiki 1
Anniversaire Kiki 1
 
Salon Solutions CNIT La Défense.
Salon Solutions CNIT La Défense.Salon Solutions CNIT La Défense.
Salon Solutions CNIT La Défense.
 
Roll-Up Diwital
Roll-Up DiwitalRoll-Up Diwital
Roll-Up Diwital
 
Bibliothèque publique & Communauté
Bibliothèque publique & CommunautéBibliothèque publique & Communauté
Bibliothèque publique & Communauté
 
Computadora 6a
Computadora  6aComputadora  6a
Computadora 6a
 
Urbe
UrbeUrbe
Urbe
 

Similaire à Domain Driven Design - Agile France 2010

Valtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludiqueValtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
atelier111
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Actency
 
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
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Didier Girard
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
ENSIBS
 
Native script
Native scriptNative script
Native script
Neticoa Sénégal
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
LaNetscouade
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox MusicMicrosoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
Samuel Metias
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
pprem
 
Conception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du webConception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du web
SOAT
 
Google Cloud Endpoints - DevFest - Nantes 2012
Google Cloud Endpoints -  DevFest - Nantes 2012Google Cloud Endpoints -  DevFest - Nantes 2012
Google Cloud Endpoints - DevFest - Nantes 2012
Maxime Gréau
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
Calculus System SARL
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Vincent Biret
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
Modern Workplace Conference Paris
 
iBelieve 2015: Présentation client par Christian Massé de Volubis
iBelieve 2015: Présentation client par Christian Massé de VolubisiBelieve 2015: Présentation client par Christian Massé de Volubis
iBelieve 2015: Présentation client par Christian Massé de Volubis
Fresche Solutions
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
Ludovic Piot
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
Quentin Adam
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Frédéric Harper
 

Similaire à Domain Driven Design - Agile France 2010 (20)

Valtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludiqueValtech - Gestion de projet agile, par la pratique et de façon ludique
Valtech - Gestion de projet agile, par la pratique et de façon ludique
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
 
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é
 
Bureau Metier - Version 20061010
Bureau Metier - Version 20061010Bureau Metier - Version 20061010
Bureau Metier - Version 20061010
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Native script
Native scriptNative script
Native script
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox MusicMicrosoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Xbox Music
 
Utiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateformeUtiliser l'EDI pour développer en multiplateforme
Utiliser l'EDI pour développer en multiplateforme
 
Conception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du webConception de code javascript cote client dans la continuité du renouveau du web
Conception de code javascript cote client dans la continuité du renouveau du web
 
Google Cloud Endpoints - DevFest - Nantes 2012
Google Cloud Endpoints -  DevFest - Nantes 2012Google Cloud Endpoints -  DevFest - Nantes 2012
Google Cloud Endpoints - DevFest - Nantes 2012
 
Calculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stackCalculus System Academy:Devenez un développeur Full stack
Calculus System Academy:Devenez un développeur Full stack
 
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
Introduction au #MicrosoftGraph demarrez vite et livrez rapidemment #MWCP18
 
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
iBelieve 2015: Présentation client par Christian Massé de Volubis
iBelieve 2015: Présentation client par Christian Massé de VolubisiBelieve 2015: Présentation client par Christian Massé de Volubis
iBelieve 2015: Présentation client par Christian Massé de Volubis
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 

Plus de François Wauquier

Agile france 2014 - Juste à temps
Agile france 2014 - Juste à tempsAgile france 2014 - Juste à temps
Agile france 2014 - Juste à temps
François Wauquier
 
Agile france 2013 - Dette Technique
Agile france 2013 - Dette TechniqueAgile france 2013 - Dette Technique
Agile france 2013 - Dette Technique
François Wauquier
 
GWT no-dto
GWT no-dtoGWT no-dto
GWT no-dto
François Wauquier
 
Un backlog public - Agile France 2012
Un backlog public - Agile France 2012 Un backlog public - Agile France 2012
Un backlog public - Agile France 2012
François Wauquier
 
Agile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipeAgile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipe
François Wauquier
 
Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011
François Wauquier
 
Jump4 It Gwt Mvc
Jump4 It Gwt MvcJump4 It Gwt Mvc
Jump4 It Gwt Mvc
François Wauquier
 
Agile Tour Lille 2008
Agile Tour Lille 2008Agile Tour Lille 2008
Agile Tour Lille 2008
François Wauquier
 

Plus de François Wauquier (9)

Agile france 2014 - Juste à temps
Agile france 2014 - Juste à tempsAgile france 2014 - Juste à temps
Agile france 2014 - Juste à temps
 
Agile france 2013 - Dette Technique
Agile france 2013 - Dette TechniqueAgile france 2013 - Dette Technique
Agile france 2013 - Dette Technique
 
GWT no-dto
GWT no-dtoGWT no-dto
GWT no-dto
 
Un backlog public - Agile France 2012
Un backlog public - Agile France 2012 Un backlog public - Agile France 2012
Un backlog public - Agile France 2012
 
Agile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipeAgile Tour Nantes 2011 frontieres de equipe
Agile Tour Nantes 2011 frontieres de equipe
 
Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011Les Frontieres de L'equipe - Agile france 2011
Les Frontieres de L'equipe - Agile france 2011
 
Jump4 It Gwt Mvc
Jump4 It Gwt MvcJump4 It Gwt Mvc
Jump4 It Gwt Mvc
 
Planning Game Xp Days 2009
Planning Game Xp Days 2009Planning Game Xp Days 2009
Planning Game Xp Days 2009
 
Agile Tour Lille 2008
Agile Tour Lille 2008Agile Tour Lille 2008
Agile Tour Lille 2008
 

Domain Driven Design - Agile France 2010

  • 1. Domain Driven Design                                  & Agilité ... C omprendre, C ommuniquer, C oder François Wauquier Nicolas Martignole
  • 2. Il est difficile de capturer le besoin présent
  • 3. Il est impossible de capturer le besoin futur
  • 4. Les méthodes Agiles exploitent le changement comme avantage compétitif en livrant fréquemment
  • 5.   Il etait une fois un projet J'ai un besoin Je réalise un logiciel
  • 6.
  • 7.
  • 8. Retour sur le Manifeste Agile
  • 9.
  • 10.
  • 11.
  • 12.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.   Vers la source du besoin
  • 30.   Un peu de code ? Crédit photo : ignWallah http://www.flickr.com/photos/designwallah/ Licences Commons Creatives 2.0
  • 31. sans DDD class ShipServiceImpl implements ShipService{      ShipDao shipDao;      void  navigate (Ship ship){          //navigation rules...          shipDao.saveOrUpdate(ship);      }      void setShipDao(ShipDao shipDao){          this.shipDao = shipDao;      } } class Ship{     }
  • 32.   avec DDD class ShipService{           void  navigate (Ship ship){            ship.navigate();           }   } @Entity class Ship {      void navigate(){          //navigation rules...          save();      } }
  • 33.
  • 34.
  • 35.