DDD et XP
Quel est le but ?Le but est de résoudre le problème du                 client
Quest-ce quXP ?
Quest-ce que DDD ?           Quest-ce que              DDD ?
Quest-que DDD ?On doit travailler dans un domaine
Quest-ce que DDD ?Le code, cest pas technique
Quest-ce que DDD ?Volonté de créer une abstraction : le              Modèle
Quest-ce quun modèle ?            Quest-ce quun              modèle ?
Quest-ce quun modèle ?
Quest-ce quun modèle ?Un ensemble dobjets interconnectés    qui portent des règles métier
Quest-ce quun modèle ?Exprimé dans un langage omniprésent
Pourquoi un modèle ?         Pourquoi un modèle         est nécessaire pour           une équipe qui             utilise X...
Pourquoi un modèle ?Pour accepter les changements
Pourquoi un modèle ?Pour communiquer avec le client
Pourquoi un modèle ?Parce que TDD ne suffit pas pour créer        une bonne conception
Comment ?Comment écrire du bon code ?
Comment ?
Comment ?Faites chanter le code !
Comment ?Un petit exemple
Un petit exemple                                Avantpublic void faireRelancesClients() {    sql = "select * from clients ...
Un petit exemple                             Aprèspublic void faireRelancesClients() {    clients = Entrepôts.clients().pa...
Comment ?Communication avec le client pour   extraire la connaissance
Comment ?TDD et refactoring sont indispensables pour obtenir une bonne conception
Comment ?Pour que le refactoring soit efficace, il       faut une cible, un but
Comment ?
Comment ?Blocs de construction
Blocs de constructionÉléments qui expriment le modèle :             • Entités             • Objets valeur             • Se...
Blocs de construction                                    Entrepôts« Only try to realize the truth »
Entrepôts dans le modèle
Entrepôts en mémoire
Entrepôts hibernate
Conception souple• Fonctions sans effet de bord• Assertions
Questions
Autres questionsQuand adopter DDD ?
Pour aller plus loinDomain Driven Design     Applying Domain-DrivenEric Evans               Design and Patterns           ...
Prochain SlideShare
Chargement dans…5
×

Fabien Bezagu : Présentation XP et DDD

642 vues

Publié le

Cette session sera menée par Fabien BEZAGU, expert en développement objet de logiciels d'entreprise. DDD est une approche dont le principe est de mettre au cœur du développement logiciel la modélisation de la logique métier du client. Extreme Programming (XP) est une méthode agile très complète impliquant fortement le client dans le développement du logiciel. Après une brève présentation de DDD (doit-on encore présenter XP ?), Fabien Bezagu mettra en lumière les liens étroits entre ces deux approches afin de vous démontrer pourquoi il vous faudra adopter XP si vous voulez réussir avec DDD et, surtout, pourquoi DDD est le compagnon indispensable des équipes XP qui veulent créer des architectures logicielles propices aux changements. N'hésitez pas à noter toutes vos questions et réflexions pour la fin de la session qui privilégiera les discussions.

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
642
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Fabien Bezagu : Présentation XP et DDD

  1. 1. DDD et XP
  2. 2. Quel est le but ?Le but est de résoudre le problème du client
  3. 3. Quest-ce quXP ?
  4. 4. Quest-ce que DDD ? Quest-ce que DDD ?
  5. 5. Quest-que DDD ?On doit travailler dans un domaine
  6. 6. Quest-ce que DDD ?Le code, cest pas technique
  7. 7. Quest-ce que DDD ?Volonté de créer une abstraction : le Modèle
  8. 8. Quest-ce quun modèle ? Quest-ce quun modèle ?
  9. 9. Quest-ce quun modèle ?
  10. 10. Quest-ce quun modèle ?Un ensemble dobjets interconnectés qui portent des règles métier
  11. 11. Quest-ce quun modèle ?Exprimé dans un langage omniprésent
  12. 12. Pourquoi un modèle ? Pourquoi un modèle est nécessaire pour une équipe qui utilise XP ?
  13. 13. Pourquoi un modèle ?Pour accepter les changements
  14. 14. Pourquoi un modèle ?Pour communiquer avec le client
  15. 15. Pourquoi un modèle ?Parce que TDD ne suffit pas pour créer une bonne conception
  16. 16. Comment ?Comment écrire du bon code ?
  17. 17. Comment ?
  18. 18. Comment ?Faites chanter le code !
  19. 19. Comment ?Un petit exemple
  20. 20. Un petit exemple Avantpublic void faireRelancesClients() { sql = "select * from clients where solde > 0 and date_dernier_reglement < subtract(now, 3)" jeuDonnées = execute(sql) foreach (enregistrement in jeuDonnées) { envoyerWolf(jeuDonnées["adresse"], jeuDonnées["code_postal"], jeuDonnées["ville"]) }}
  21. 21. Un petit exemple Aprèspublic void faireRelancesClients() { clients = Entrepôts.clients().parSpécification( new SpécificationClientMauvaisPayeur()) foreach (mauvaisPayeur in clients) { envoyerWolf(mauvaisPayeur.getAdresse()) }}
  22. 22. Comment ?Communication avec le client pour extraire la connaissance
  23. 23. Comment ?TDD et refactoring sont indispensables pour obtenir une bonne conception
  24. 24. Comment ?Pour que le refactoring soit efficace, il faut une cible, un but
  25. 25. Comment ?
  26. 26. Comment ?Blocs de construction
  27. 27. Blocs de constructionÉléments qui expriment le modèle : • Entités • Objets valeur • Services
  28. 28. Blocs de construction Entrepôts« Only try to realize the truth »
  29. 29. Entrepôts dans le modèle
  30. 30. Entrepôts en mémoire
  31. 31. Entrepôts hibernate
  32. 32. Conception souple• Fonctions sans effet de bord• Assertions
  33. 33. Questions
  34. 34. Autres questionsQuand adopter DDD ?
  35. 35. Pour aller plus loinDomain Driven Design Applying Domain-DrivenEric Evans Design and Patterns Jimmy Nilsson

×