Contenu connexe Similaire à Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blanc, blanc bonnet ? (20) Plus de OCTO Technology (20) Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blanc, blanc bonnet ?2. 2
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
12/01/2023
Architecture hexagonale
& Clean architecture :
bonnet blanc, blanc bonnet ?
3. Coin
Coin
!
3
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Christophe Breheret-Girardin,
23 ans d’XP
Présentation
Coach craft Auditeur technique
Formateur Conférencier
Développeur Tech lead Architecte
5. Coin
Coin
!
5
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Database Driven Development
Autour des années 2000
Première décision
6. Coin
Coin
!
6
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Installation d’un bug tracker
Autour des années 2000
Deuxième décision
8. Coin
Coin
!
8
La Duck Conf by OCTO Technology © 2023 - All rights reserved
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. Coin
Coin
!
10
La Duck Conf by OCTO Technology © 2023 - All rights reserved
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
11. 11
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Architecture en
couches dans la
vraie vie
https://www.notretemps.com/droit-argent/logement/inondations
-connaitre-les-risques-de-crues-pres-de-chez-vous-19373
12. Coin
Coin
!
12
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Les microservices
Division en “petits” services La réalité
13. 13
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Certains microservices
dans la vraie vie
https://www.universfreebox.com/article/535420/fibre-optique-face-aux-critiques-malfaco
ns-et-autres-problemes-sfr-promet-dameliorer-lentretien-de-ses-reseaux-mais
14. 14
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
La construction d’un périmètre 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
L’architecture logicielle
15. 15
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
● 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
La valeur ?
16. 16
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Démocratisation des pratiques
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
24. Coin
Coin
!
24
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Mais c’est quoi un port ? C’est quoi un adapter ?
Chambre
Prix
Hotel
26. Coin
Coin
!
26
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Echange de données
L’hexagone ne connaît pas la technologie des adapters
La partie “intérieure” ne doit pas fuir dans la partie “extérieure”
29. Coin
Coin
!
29
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Enterprise business rules
Application business rules
Parallèle avec l’hexagonal architecture
30. Coin
Coin
!
30
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Enterprise business rules
Application business rules
Et la technologie ?
Sauf si…
34. Coin
Coin
!
34
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Interface adapter
Echange de données
Les “interface adapters”
convertissent les données
dans le format le plus
pratique pour le use case
38. Coin
Coin
!
38
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Les avantages communs
Sujet Hexagonal Clean
Découplage, isolation
Flexibilité
Pérennité
Testabilité
Repousser les choix techniques
Front / Back
39. Coin
Coin
!
39
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Un niveau de guidage différent
Sujet Hexagonal Clean
Abstraction / interface / contrat / rôle Imposé(e) côté server-side Imposé(e) partout
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
41. 41
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
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