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
Nicolas VERINAUD
@nverinaud
academie.ryfacto.fr
Architecture Émergente
Guidée par les Tests
Nicolas VERINAUD
@nverinaud
academie.ryfacto.fr
Code == Littérature
DISCLAIMER
Tout est compromis
DISCLAIMER
Coûts vs Bénéfices
L’archi parfaite n’existe pas
DISCLAIMER
vous pouvez arrêter de chercher ;-]
Architecture
Architecture != Pattern
MVC, MVVM, VIPER, MVP, ...
« Organisation des divers éléments constitutifs d’un
système informatique, en vue d’optimiser la conception de
l’ensemble ...
Architecture == Conception
Émergente
« Qui apparaît soudainement au cours de l'histoire »
Larousse
https://www.larousse.fr/dictionnaires/francais/%C3%A9mergent...
Pourquoi faire émerger la
conception ?
Le changement
Le changement
Ses sources ?
Le changement
Ses sources ?
Le besoin change
Ses sources ?
Le besoin change
Notre compréhension change
Le besoin change
Notre compréhension change
Nul en divination
Anticiper == sur-ingénierie
Anticiper == sur-ingénierie
Code « au cas où »
Anticiper == sur-ingénierie
Code « au cas où »
Complexité accidentelle
3 complexités (Out of the Tar Pit)
3 complexités (Out of the Tar Pit)
Essentielle
3 complexités (Out of the Tar Pit)
Essentielle
Nécessaire
Essentielle
Nécessaire
Accidentelle
Défi
« Bien doser la complexité
nécessaire & éliminer la
complexité accidentelle »
https://martinfowler.com/articles/is-quality-worth-cost.html
Qu’est-ce qu’une bonne
conception ?
Qu’est-ce qu’une bonne conception ?
Réponds au besoin
d’aujourd’hui...
Qu’est-ce qu’une bonne conception ?
Réponds au besoin d’aujourd’hui...
...en gardant les options
ouvertes pour demain.
...en gardant les options ouvertes pour
demain.
SOLID, DRY
Faire émerger la conception
Faire émerger la conception
Changer la structure...
Faire émerger la conception
Changer la structure...
...sans changer le
comportement !
Faire émerger la conception
Changer la structure...
...sans changer le comportement !
Comment ?
Changer la structure...
...sans changer le comportement !
Comment ?
Refactoring régulier
...sans changer le comportement !
Comment ?
Refactoring régulier
Je risque de tout péter non ?
Refactoring régulier
Je risque de tout péter non ?
Non ! Grâce aux tests
automatisés !
Encore faut-il en avoir
Encore faut-il en avoir
Encore faut-il leur faire
confiance
Encore faut-il en avoir
Encore faut-il leur faire confiance
Mauvais tests pire que pas de
tests
Qu’est-ce qu’un bon Test ?
Qu’est-ce qu’un bon Test ?
F.I.R.S.T.
Qu’est-ce qu’un bon Test ?
F.I.R.S.T.
Fast
F.I.R.S.T.
Fast
Independent
F.I.R.S.T.
Fast Independent
Repeatable
F.I.R.S.T.
Fast Independent Repeatable
Self Validating
F.I.R.S.T.
Fast Independent Repeatable Self Validating
Timely
F.I.R.S.T.
Fast Independent Repeatable Self Validating Timely
TDD
TDD
Conception Just-In-Time
TDD
Conception Just-In-Time
Lister les besoins
TDD
Conception Just-In-Time Lister les besoins
Danser !
TDD
Danser !
RED
TDD
Danser !
RED
DIAGNOSTIC
DIAGNOSTIC
TDD
Danser !
RED
GREEN
DIAGNOSTIC
TDD
Danser !
RED GREEN
REFACTOR
DIAGNOSTIC
TDD
Danser !
RED GREEN REFACTOR
Tests == Spécifications
Tests == Spécifications
Fonctionnelle
Tests == Spécifications
Fonctionnelle
Pas technique !
Tests == Spécifications
Fonctionnelle
Pas technique !
Ne pas coupler tests & prod
Exemple
Changement inévitable
Changement inévitable
Faire émerger la conception
Changement inévitable
Faire émerger la conception
Tests pour ne rien casser
Faire émerger la conception
Tests pour ne rien casser
F.I.R.S.T. & Spécifications
Pour aller plus loin...
Pour aller plus loin...
⁃ « Growing Object-Oriented Software Guided by Tests », Steve
Freeman & Nat Pryce
⁃ « Refactoring ...
Pour aller plus vite...
academie.ryfacto.fr
nicolas.verinaud@ryfacto.fr
academie.ryfacto.fr
nicolas.verinaud@ryfacto.fr
Merci !
Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019
Prochain SlideShare
Chargement dans…5
×

sur

Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 1 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 2 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 3 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 4 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 5 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 6 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 7 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 8 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 9 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 10 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 11 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 12 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 13 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 14 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 15 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 16 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 17 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 18 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 19 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 20 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 21 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 22 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 23 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 24 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 25 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 26 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 27 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 28 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 29 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 30 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 31 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 32 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 33 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 34 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 35 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 36 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 37 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 38 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 39 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 40 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 41 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 42 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 43 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 44 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 45 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 46 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 47 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 48 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 49 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 50 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 51 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 52 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 53 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 54 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 55 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 56 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 57 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 58 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 59 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 60 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 61 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 62 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 63 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 64 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 65 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 66 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 67 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 68 Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 Slide 69
Prochain SlideShare
What to Upload to SlideShare
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

0 j’aime

Partager

Télécharger pour lire hors ligne

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

Télécharger pour lire hors ligne

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

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • 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 !

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

Vues

Nombre de vues

245

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

22

Actions

Téléchargements

0

Partages

0

Commentaires

0

Mentions J'aime

0

×