Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019

100 vues

Publié le

Présentation faite en remote lors du Cocoaheads Nantes de Novembre 2019.

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019

  1. 1. Architecture Émergente Guidée par les Tests Nicolas VERINAUD @nverinaud academie.ryfacto.fr
  2. 2. Architecture Émergente Guidée par les Tests Nicolas VERINAUD @nverinaud academie.ryfacto.fr
  3. 3. Code == Littérature DISCLAIMER
  4. 4. Tout est compromis DISCLAIMER Coûts vs Bénéfices
  5. 5. L’archi parfaite n’existe pas DISCLAIMER vous pouvez arrêter de chercher ;-]
  6. 6. Architecture
  7. 7. Architecture != Pattern MVC, MVVM, VIPER, MVP, ...
  8. 8. « Organisation des divers éléments constitutifs d’un système informatique, en vue d’optimiser la conception de l’ensemble pour un usage déterminé. » Larousse https://www.larousse.fr/dictionnaires/francais/architecture/5078
  9. 9. Architecture == Conception
  10. 10. Émergente
  11. 11. « Qui apparaît soudainement au cours de l'histoire » Larousse https://www.larousse.fr/dictionnaires/francais/%C3%A9mergent/28715
  12. 12. Pourquoi faire émerger la conception ?
  13. 13. Le changement
  14. 14. Le changement Ses sources ?
  15. 15. Le changement Ses sources ? Le besoin change
  16. 16. Ses sources ? Le besoin change Notre compréhension change
  17. 17. Le besoin change Notre compréhension change Nul en divination
  18. 18. Anticiper == sur-ingénierie
  19. 19. Anticiper == sur-ingénierie Code « au cas où »
  20. 20. Anticiper == sur-ingénierie Code « au cas où » Complexité accidentelle
  21. 21. 3 complexités (Out of the Tar Pit)
  22. 22. 3 complexités (Out of the Tar Pit) Essentielle
  23. 23. 3 complexités (Out of the Tar Pit) Essentielle Nécessaire
  24. 24. Essentielle Nécessaire Accidentelle
  25. 25. Défi « Bien doser la complexité nécessaire & éliminer la complexité accidentelle »
  26. 26. https://martinfowler.com/articles/is-quality-worth-cost.html
  27. 27. Qu’est-ce qu’une bonne conception ?
  28. 28. Qu’est-ce qu’une bonne conception ? Réponds au besoin d’aujourd’hui...
  29. 29. Qu’est-ce qu’une bonne conception ? Réponds au besoin d’aujourd’hui... ...en gardant les options ouvertes pour demain.
  30. 30. ...en gardant les options ouvertes pour demain. SOLID, DRY
  31. 31. Faire émerger la conception
  32. 32. Faire émerger la conception Changer la structure...
  33. 33. Faire émerger la conception Changer la structure... ...sans changer le comportement !
  34. 34. Faire émerger la conception Changer la structure... ...sans changer le comportement ! Comment ?
  35. 35. Changer la structure... ...sans changer le comportement ! Comment ? Refactoring régulier
  36. 36. ...sans changer le comportement ! Comment ? Refactoring régulier Je risque de tout péter non ?
  37. 37. Refactoring régulier Je risque de tout péter non ? Non ! Grâce aux tests automatisés !
  38. 38. Encore faut-il en avoir
  39. 39. Encore faut-il en avoir Encore faut-il leur faire confiance
  40. 40. Encore faut-il en avoir Encore faut-il leur faire confiance Mauvais tests pire que pas de tests
  41. 41. Qu’est-ce qu’un bon Test ?
  42. 42. Qu’est-ce qu’un bon Test ? F.I.R.S.T.
  43. 43. Qu’est-ce qu’un bon Test ? F.I.R.S.T. Fast
  44. 44. F.I.R.S.T. Fast Independent
  45. 45. F.I.R.S.T. Fast Independent Repeatable
  46. 46. F.I.R.S.T. Fast Independent Repeatable Self Validating
  47. 47. F.I.R.S.T. Fast Independent Repeatable Self Validating Timely
  48. 48. F.I.R.S.T. Fast Independent Repeatable Self Validating Timely TDD
  49. 49. TDD Conception Just-In-Time
  50. 50. TDD Conception Just-In-Time Lister les besoins
  51. 51. TDD Conception Just-In-Time Lister les besoins Danser !
  52. 52. TDD Danser ! RED
  53. 53. TDD Danser ! RED DIAGNOSTIC
  54. 54. DIAGNOSTIC TDD Danser ! RED GREEN
  55. 55. DIAGNOSTIC TDD Danser ! RED GREEN REFACTOR
  56. 56. DIAGNOSTIC TDD Danser ! RED GREEN REFACTOR Tests == Spécifications
  57. 57. Tests == Spécifications Fonctionnelle
  58. 58. Tests == Spécifications Fonctionnelle Pas technique !
  59. 59. Tests == Spécifications Fonctionnelle Pas technique ! Ne pas coupler tests & prod
  60. 60. Exemple
  61. 61. Changement inévitable
  62. 62. Changement inévitable Faire émerger la conception
  63. 63. Changement inévitable Faire émerger la conception Tests pour ne rien casser
  64. 64. Faire émerger la conception Tests pour ne rien casser F.I.R.S.T. & Spécifications
  65. 65. Pour aller plus loin...
  66. 66. Pour aller plus loin... ⁃ « Growing Object-Oriented Software Guided by Tests », Steve Freeman & Nat Pryce ⁃ « Refactoring », Martin Fowler ⁃ « Clean Code », Robert C. Martin ⁃ « Hexagonal Architecture », Alistair Cockburn ⁃ « TDD by Example », Kent Beck
  67. 67. Pour aller plus vite... academie.ryfacto.fr nicolas.verinaud@ryfacto.fr
  68. 68. academie.ryfacto.fr nicolas.verinaud@ryfacto.fr Merci !

×