Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adoptez la clean archigonale - Webinar Promyze ...

Promyze
August 23, 2023

Adoptez la clean archigonale - Webinar Promyze & Octo

Dans ce webinar nous parlerons de la clean archigonale;
"L'architecture est vraiment importante. Les choses qui sont difficiles à changer sont l'architecture initiale, la culture et les compétences de l'équipe. C'est pourquoi il est important de bien faire les choses dès le départ." - Martin Fowler

Après une période de balbutiement où nous codions comme nous pouvions, nous avons cru, après les années 2000, avoir trouvé l'architecture idéale : un découpage en couches, où chacune aurait une responsabilité dédiée.

Idée séduisante sur le papier, mise en œuvre efficace... au départ.

Des années après, tout un tas de problèmes a fait surface lors de la maintenance et de l'évolutivité du logiciel, surtout avec l'abondance et le cycle de vie des frameworks.

Afin de pallier ces problèmes, des architectures ont émergé, dont l’architecture Hexagonale et la Clean architecture.

Mais qu'apportent-elles réellement ?
Que veut dire "clean/propre" au sujet d'une architecture ?
Quelles sont leurs périmètres d'action ?
Est-ce juste du marketing ou une véritable plus-value ?
Sont-elles équivalentes avec un nommage différent ?
Enfin... sont-elles la réponse unique à tous les problèmes ?

Lors de ce webinar, Christophe viendra nous partager ses retours d'expérience et son regard sur ce sujet qui est actuellement au coeur des discussions pour de nombreuses équipes.

Promyze

August 23, 2023
Tweet

More Decks by Promyze

Other Decks in Programming

Transcript

  1. 1 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Meetup promyze
  2. 2 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Martin fowler L'architecture est vraiment importante. Les choses qui sont difficiles à changer sont l'architecture initiale, la culture et les compétences de l'équipe. C'est pourquoi il est important de bien faire les choses dès le départ
  3. 3 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G De l’agilité vers le software craftsmanship Les individus et leurs interactions Des logiciels opérationnels La collaboration avec les clients L’adaptation au changement Les processus et les outils Une documentation exhaustive Négociation contractuelle Suivi d’un plan Des logiciels bien conçus L’ajout constant de valeur Une communauté de professionnels Des partenariats productifs
  4. 4 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Présentation Christophe Breheret-Girardin + 20 ans d’XP Coach craft Auditeur Formateur Conférencier Développeur Tech lead Architecte Auteur christophe-breheret-girardin @ChristopheB_G
  5. 5 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Un peu d’histoire 01
  6. 6 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Database Driven Development Autour des années 2000 Première décision
  7. 7 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Bug tracker Autour des années 2000 Deuxième décision
  8. 8 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Et place au code Autour des années 2000
  9. 9 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture spaghetti • “Big ball of mud” en anglais ◦ Avant les années 2000 ◦ Quoique… • Illusion de vitesse, mais… ◦ Non testable automatiquement ◦ Onboarding compliqué ◦ Souffrance en maintenance ◦ Souffrance à faire évoluer
  10. 10 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Arbre de dépendances spaghetti
  11. 11 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture spaghetti IRL Mme Michu a un problème électrique, merci d’aller la dépanner Top manager
  12. 12 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Développeur fâce à un code spaghetti
  13. 13 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture en couches Ce que les gens pensaient La réalité • La modélisation objet est transverse • Les frameworks sont transverses • Structuration par couches sur tous les périmètres applicatifs
  14. 14 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Arborescence d’une architecture en couches
  15. 15 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture en couches IRL Mme Michu a un problème pour se déplacer à pied, merci de l’aider Top manager https://www.notretemps.com/droit- argent/logement/inondations-connaitre-les-risques-de-crues- pres-de-chez-vous-19373
  16. 16 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Développeur fâce à un code en couches
  17. 17 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Microservices Division en “petits” services La réalité
  18. 18 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Microservices IRL Mme Michu a un problème de connexion internet Top manager https://www.universfreebox.com/article/535420/fibre-optique-face-aux-critiques- malfacons-et-autres-problemes-sfr-promet-dameliorer-lentretien-de-ses-reseaux-mais
  19. 19 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Développeur fâce aux microservices mal-conçus Crédit : iStock
  20. 20 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G La valeur ? • La valeur principale de notre applicatif est : ◦ Le métier ◦ Un métier complexe • Pourquoi ? Car c’est : ◦ La raison d’être du coeur d’une application ◦ La valeur business ou client ◦ Ce qui est différenciant par rapport à la concurrence ◦ Ce qui est le plus pérenne ▪ vs la technologie ▪ vs les librairies
  21. 21 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture logicielle https://www.universfreebox.com/article/535420/fibre-optique-face-aux-critiques- malfacons-et-autres-problemes-sfr-promet-dameliorer-lentretien-de-ses-reseaux-mais La construction d’un périmètre applicatif se base sur une architecture logicielle • Ce système doit être maintenu ◦ De plus, il évolue ◦ Doit s’effectuer avec le moins de douleur possible • L’architecture logicielle est donc centrale dans le dispositif ◦ Doit notamment protéger la valeur des intempéries techniques
  22. 22 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Démocratisation des pratiques https://www.universfreebox.com/article/535420/fibre-optique-face-aux-critiques- malfacons-et-autres-problemes-sfr-promet-dameliorer-lentretien-de-ses-reseaux-mais 2000 Aujourd’hui Nouvelles technologies 2015 Test Driven Development Tests unitaires (où l’unité = comportement) Hexagonal/Clean architecture Domain Driven Design Clean code Collaboration métier / dev / ops Déploiement continu Culture produit Tests manuels Architecture spaghetti Code bas niveau Cycle en V Pyramide des tests automatisés Tests unitaires (où l’unité = petite portion de code) Couverture de code Modèle en couches Frameworks Intégration continue Agilité 2023 Etablissement de bonnes pratiques Software craftsmanship / devops Blog
  23. 23 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G L’architecture Hexagonale 02
  24. 24 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Alistair Cockburn en 2005
  25. 25 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Isoler la valeur
  26. 26 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G La décrue technologique pour pérenniser la valeur Sauf si…
  27. 27 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Architecture port et adapter
  28. 28 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Le flow d’exécution
  29. 29 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Gauche / droite Primaire Driver API … Secondaire Driven SPI …
  30. 30 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Techniquement, c’est quoi un port et un adapter ?
  31. 31 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Repousser les choix techniques
  32. 32 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Aux frontières L’hexagone ne connaît pas la technologie des adapters La partie “intérieure” ne doit pas fuir dans la partie “extérieure”
  33. 33 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Pourquoi une forme d'hexagone ?
  34. 34 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Symétrie
  35. 35 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Taille des ports ? OU
  36. 36 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G La clean architecture 03
  37. 37 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Robert C. Martin en 2012
  38. 38 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Parallèle avec l’architecture Hexagonale Enterprise business rules Application business rules
  39. 39 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Technologie Enterprise business rules Application business rules Sauf si…
  40. 40 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Mise en oeuvre du use case
  41. 41 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Clean architecture sous forme Hexagonale Type Course Prix KM VTC
  42. 42 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Exemple d’arborescence
  43. 43 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Pizza slices
  44. 44 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Taille des ports : screaming architecture
  45. 45 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Frontières Interface adapter Les “interface adapters” convertissent les données dans le format le plus pratique pour le use case
  46. 46 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Bilan 04
  47. 47 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Questionnaire Konbini Clean Hexagonal
  48. 48 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Fred Brooks There is no silver bullet
  49. 49 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Quelle architecture choisir ?
  50. 50 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Les avantages communs Sujet Hexagonal Clean Découplage, isolation Flexibilité Pérennité Testabilité Repousser les choix techniques Front / Back
  51. 51 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Un niveau de guidage différent Sujet Hexagonal Clean Point d’entrée Signature ? Corps ? Use case sans comportement Abstraction / interface / contrat / rôle Imposé(e) côté server-side Imposé(e) partout Comportement Corps du port ? Ailleurs ? Entity Taille des ports Pas de positionnement 1 use case = 1 fichier (screaming architecture) Echange d’information L’intérieur ne doit pas fuir Retour classique puis le contrôleur doit s’occuper du formatage / présentation des données Plus de détail sur le rôle des couches externes Utilisation d’un "présenter" permettant de découpler les responsabilités de présentation des données
  52. 52 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Terminologie différente
  53. 53 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Les 3 éléments importants à retenir • Un objectif commun ▪ Isoler la valeur métier • Mais avec une terminologie différente • Apporte des avantages et inconvénients communs ▪ Découplage, flexibilité, mieux structuré, etc. ▪ Pas de guidage pour le design du métier ▪ Pas adapté à toutes les situations • Propose un niveau de guidage différent ▪ Screaming architecture ▪ Interfaces partout ou non ▪ Retour des informations
  54. 54 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Questionnaire Konbini !!???? Clean Hexagonal
  55. 55 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved Meetup Promyze : “Adoptez la clean archigonale” par @ChristopheB_G Ma réponse La clean archigonale
  56. 56 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Shuhari Quitter, se séparer Se détacher, digresser Protéger, obéir Sagesse traditionnelle Apprendre les fondamentaux Casser avec la tradition Trouver des exceptions Transcender No limit
  57. 57 OCTO Part of Accenture © 2022 - All rights

    reserved Meetup promyze : “Adoptez la clean archigonale” par @ChristopheB_G Mark Seemann You can only be pragmatic if you know how to be dogmatic
  58. 58 There is a better way OCTO Part of Accenture

    © 2023 - All rights reserved