SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
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 pour un usage déterminé. »
Larousse
https://www.larousse.fr/dictionnaires/francais/architecture/5078
Architecture == Conception
Émergente
« Qui apparaît soudainement au cours de l'histoire »
Larousse
https://www.larousse.fr/dictionnaires/francais/%C3%A9mergent/28715
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 », Martin Fowler
⁃ « Clean Code », Robert C. Martin
⁃ « Hexagonal Architecture », Alistair Cockburn
⁃ « TDD by Example », Kent Beck
Pour aller plus vite...
academie.ryfacto.fr
nicolas.verinaud@ryfacto.fr
academie.ryfacto.fr
nicolas.verinaud@ryfacto.fr
Merci !

Contenu connexe

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

Présentation Agile Tour 2015 - Agilité et Internet des Objets
Présentation Agile Tour 2015 - Agilité et Internet des ObjetsPrésentation Agile Tour 2015 - Agilité et Internet des Objets
Présentation Agile Tour 2015 - Agilité et Internet des ObjetsVincent Hubert
 
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...Agile Montréal
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationPHPPRO
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & opsQuentin Adam
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDXavier NOPRE
 
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...Bastien Gallay
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?XP Day CH
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011agnes_crepet
 
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfLa crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfGuillaume Saint Etienne
 
La Virtualisation.pdf
La Virtualisation.pdfLa Virtualisation.pdf
La Virtualisation.pdfNatijTDI
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Microsoft
 

Similaire à Architecture Émergente Guidée Par Les Tests - Cocoaheads Nantes Novembre 2019 (16)

Présentation Agile Tour 2015 - Agilité et Internet des Objets
Présentation Agile Tour 2015 - Agilité et Internet des ObjetsPrésentation Agile Tour 2015 - Agilité et Internet des Objets
Présentation Agile Tour 2015 - Agilité et Internet des Objets
 
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...
ATMTL23 - Comment nos organisations évoluent vers l'agilité : les premiers ré...
 
Agilité, Tests Et Industrialisation
Agilité, Tests Et IndustrialisationAgilité, Tests Et Industrialisation
Agilité, Tests Et Industrialisation
 
Les quick wins de l'UX
Les quick wins de l'UXLes quick wins de l'UX
Les quick wins de l'UX
 
Du craft chez les OPS
Du craft chez les OPSDu craft chez les OPS
Du craft chez les OPS
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Human Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDDHuman Talks Grenoble - 11/12/2012 - TDD
Human Talks Grenoble - 11/12/2012 - TDD
 
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...La régression continue - Une méthode pour bien faire rater l'adoption agile ...
La régression continue - Une méthode pour bien faire rater l'adoption agile ...
 
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
D1 - Un développeur est-il un numéro, un coût journalier ou un artiste ?
 
Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011Introduction a l_agilite_iut_lyon_1_decembre2011
Introduction a l_agilite_iut_lyon_1_decembre2011
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdfLa crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
La crise Agile chez les Developpeurs (AGrenoble2019) (1).pdf
 
La virtualisation
La virtualisationLa virtualisation
La virtualisation
 
La Virtualisation.pdf
La Virtualisation.pdfLa Virtualisation.pdf
La Virtualisation.pdf
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 

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