Fabien Bezagu : Présentation XP et DDD

630 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
630
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

×