SlideShare una empresa de Scribd logo
1 de 35
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]

Más contenido relacionado

Destacado

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 Oodeimos
 
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 clientsazzuro75
 
Diapositivas Nivel Internet
Diapositivas Nivel InternetDiapositivas Nivel Internet
Diapositivas Nivel Internetlourdesb1
 
Elements & Principles
Elements & PrinciplesElements & Principles
Elements & Principlesauttendorfer
 
Penetración y crecimiento del Internet
Penetración y crecimiento del InternetPenetración y crecimiento del Internet
Penetración y crecimiento del Internetlourdesb1
 
Manual de uso Deezine
Manual de uso DeezineManual de uso Deezine
Manual de uso DeezineFuel.cat
 
Anniversaire Kiki 1
Anniversaire Kiki 1Anniversaire Kiki 1
Anniversaire Kiki 1guest0c71ce
 
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 6aStefania
 

Destacado (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
 

Similar a 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 ludiqueValtech
 
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'XPatelier111
 
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, ParisActency
 
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
 
templates.iafactory, guide de prise en main
templates.iafactory, guide de prise en maintemplates.iafactory, guide de prise en main
templates.iafactory, guide de prise en mainiafactory
 
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
 
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 MusicSamuel 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 multiplateformepprem
 
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 webSOAT
 
Google Cloud Endpoints - DevFest - Nantes 2012
Google Cloud Endpoints -  DevFest - Nantes 2012Google Cloud Endpoints -  DevFest - Nantes 2012
Google Cloud Endpoints - DevFest - Nantes 2012Maxime 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 stackCalculus 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 #MWCP18Vincent 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 VolubisFresche 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 fournisseurLudovic Piot
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & opsQuentin Adam
 

Similar a 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é
 
templates.iafactory, guide de prise en main
templates.iafactory, guide de prise en maintemplates.iafactory, guide de prise en main
templates.iafactory, guide de prise en main
 
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
 

Más de François Wauquier

Más 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.