SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
1
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
X
2
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
12/01/2023
Architecture hexagonale
& Clean architecture :
bonnet blanc, blanc bonnet ?
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
Coin
Coin
!
4
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Un peu d’histoire
01
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
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
Coin
Coin
!
7
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Et place au code…
Autour des années 2000
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
9
Coin
Coin
!
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Architecture spaghetti
dans la vraie vie
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
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
Coin
Coin
!
12
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Les microservices
Division en “petits” services La réalité
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
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
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
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
Coin
Coin
!
17
La Duck Conf by OCTO Technology © 2023 - All rights reserved
L’architecture
hexagonale
02
Coin
Coin
!
18
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Isolation de la valeur
Coin
Coin
!
19
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Hexagonal architecture d’Alistair Cockburn (2005)
Coin
Coin
!
20
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Comment pérenniser l’hexagone ?
Sauf si…
Coin
Coin
!
21
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Architecture port et adapter
Coin
Coin
!
22
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Gauche / droite ?
Coin
Coin
!
23
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Architecture évolutive
Repousser les choix techniques
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
Coin
Coin
!
25
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Taille des ports ?
OU
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”
Coin
Coin
!
27
La Duck Conf by OCTO Technology © 2023 - All rights reserved
La clean architecture
03
Coin
Coin
!
28
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Clean architecture par Robert C. Martin en 2012
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
Coin
Coin
!
30
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Enterprise business rules
Application business rules
Et la technologie ?
Sauf si…
Coin
Coin
!
31
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Mise en oeuvre du use case
Coin
Coin
!
32
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Cercles concentriques sous forme hexagonale
Coin
Coin
!
33
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Screaming
architecture
Taille des ports ?
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
Coin
Coin
!
35
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Bilan
04
Coin
Coin
!
36
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Questionnaire Konbini
Clean
Hexagonal
Coin
Coin
!
37
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Parfois aucun des deux
Non
adapté
Adapté
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
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
Coin
Coin
!
40
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Une terminologie différente
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
Coin
Coin
!
42
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Mais peux-tu répondre à la question ?
Clean
Hexagonal
Coin
Coin
!
43
La Duck Conf by OCTO Technology © 2023 - All rights reserved
Ma réponse
La clean
archigonale
Coin
Coin
!
44
La Duck Conf by OCTO Technology © 2021 - All rights reserved
Coin
Coin
!
45
La Duck Conf by OCTO Technology © 2023 - All rights reserved

Contenu connexe

Tendances

GEA-NZ v3.1 Data and Information Reference Model and Taxonomy
GEA-NZ v3.1 Data and Information Reference Model and TaxonomyGEA-NZ v3.1 Data and Information Reference Model and Taxonomy
GEA-NZ v3.1 Data and Information Reference Model and Taxonomy
Regine Deleu
 
Togaf 9 template architecture vision
Togaf 9 template   architecture visionTogaf 9 template   architecture vision
Togaf 9 template architecture vision
Kris Manzera
 
GEA-NZ v3.1 Business Reference Model and Taxonomy
GEA-NZ v3.1 Business Reference Model and TaxonomyGEA-NZ v3.1 Business Reference Model and Taxonomy
GEA-NZ v3.1 Business Reference Model and Taxonomy
Regine Deleu
 

Tendances (20)

Maximising The Value and Benefits of Enterprise Architecture
Maximising The Value and Benefits of Enterprise ArchitectureMaximising The Value and Benefits of Enterprise Architecture
Maximising The Value and Benefits of Enterprise Architecture
 
Platform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on AzurePlatform Strategy to Deliver Digital Experiences on Azure
Platform Strategy to Deliver Digital Experiences on Azure
 
GEA-NZ v3.1 Data and Information Reference Model and Taxonomy
GEA-NZ v3.1 Data and Information Reference Model and TaxonomyGEA-NZ v3.1 Data and Information Reference Model and Taxonomy
GEA-NZ v3.1 Data and Information Reference Model and Taxonomy
 
IT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITIT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of IT
 
Enterprise Architecture Governance
Enterprise Architecture GovernanceEnterprise Architecture Governance
Enterprise Architecture Governance
 
Enterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF OverviewEnterprise Architecture - TOGAF Overview
Enterprise Architecture - TOGAF Overview
 
Togaf introduction and core concepts
Togaf introduction and core conceptsTogaf introduction and core concepts
Togaf introduction and core concepts
 
Building an IT Roadmap (C.Hanckowiak)
Building an IT Roadmap (C.Hanckowiak)Building an IT Roadmap (C.Hanckowiak)
Building an IT Roadmap (C.Hanckowiak)
 
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
Creating Agile Organizations by Combining Design, Architecture and Agile Thin...
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
Business Transformation Using TOGAF
Business Transformation Using TOGAF Business Transformation Using TOGAF
Business Transformation Using TOGAF
 
Togaf 9 template architecture vision
Togaf 9 template   architecture visionTogaf 9 template   architecture vision
Togaf 9 template architecture vision
 
Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...Bringing Architecture Thinking to the People - An introduction into the PEOPL...
Bringing Architecture Thinking to the People - An introduction into the PEOPL...
 
Achieving observability-in-modern-applications
Achieving observability-in-modern-applicationsAchieving observability-in-modern-applications
Achieving observability-in-modern-applications
 
Enterprise Architecture – Vision and Reality on the Same Page
Enterprise Architecture – Vision and Reality on the Same PageEnterprise Architecture – Vision and Reality on the Same Page
Enterprise Architecture – Vision and Reality on the Same Page
 
Service Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and HowService Virtualization: What, Who, When, and How
Service Virtualization: What, Who, When, and How
 
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAFPractical Enterprise Architecture in Medium-size Corporation using TOGAF
Practical Enterprise Architecture in Medium-size Corporation using TOGAF
 
GEA-NZ v3.1 Business Reference Model and Taxonomy
GEA-NZ v3.1 Business Reference Model and TaxonomyGEA-NZ v3.1 Business Reference Model and Taxonomy
GEA-NZ v3.1 Business Reference Model and Taxonomy
 
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
An Introduction to Enterprise Architecture Visual Modeling With The ArchiMate...
 
ArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the modelsArchiMate technology layer - Simplify the models
ArchiMate technology layer - Simplify the models
 

Similaire à Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blanc, blanc bonnet ?

Similaire à Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blanc, blanc bonnet ? (20)

Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
Comptoir - Utiliser une solution d'edge Open Source pour améliorer l'inspecti...
 
La Duck Conf - Une équipe plateforme qui délivre
La Duck Conf - Une équipe plateforme qui délivreLa Duck Conf - Une équipe plateforme qui délivre
La Duck Conf - Une équipe plateforme qui délivre
 
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutiveLA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
LA DUCK CONF 2023 - Ré-urbanisation d'un SI à travers une archi évolutive
 
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolutionLA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
 
LA DUCK CONF 2023 - Sous le capot du cloud souverain
LA DUCK CONF 2023 - Sous le capot du cloud souverainLA DUCK CONF 2023 - Sous le capot du cloud souverain
LA DUCK CONF 2023 - Sous le capot du cloud souverain
 
LA DUCK CONF 2023 - Guide de survie du Change Data Capture
LA DUCK CONF 2023 - Guide de survie du Change Data CaptureLA DUCK CONF 2023 - Guide de survie du Change Data Capture
LA DUCK CONF 2023 - Guide de survie du Change Data Capture
 
La Duck Conf - CovidTracker, la data au service de tous
La Duck Conf - CovidTracker, la data au service de tousLa Duck Conf - CovidTracker, la data au service de tous
La Duck Conf - CovidTracker, la data au service de tous
 
La Duck Conf - Le rôle de l'architect(ur)e dans un contexte agile
La Duck Conf - Le rôle de l'architect(ur)e dans un contexte agile La Duck Conf - Le rôle de l'architect(ur)e dans un contexte agile
La Duck Conf - Le rôle de l'architect(ur)e dans un contexte agile
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"
 
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
 
La Duck Conf - "Kube is the new mainframe"
La Duck Conf - "Kube is the new mainframe" La Duck Conf - "Kube is the new mainframe"
La Duck Conf - "Kube is the new mainframe"
 
Meetup sdn paris #4
Meetup sdn paris #4Meetup sdn paris #4
Meetup sdn paris #4
 
La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code La Duck Conf - Les fakes news du low-code
La Duck Conf - Les fakes news du low-code
 
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
 
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ? La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
La Duck Conf - Qui maîtrise le mieux le chaos de votre SI ? Mozart ou Béjart ?
 
L'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérativeL'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérative
 
Restructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoiRestructurer un legacy comment et pourquoi
Restructurer un legacy comment et pourquoi
 

Plus de OCTO Technology

Plus de OCTO Technology (20)

Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéLe Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
 
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture Test
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend web
 
Refcard GraphQL
Refcard GraphQLRefcard GraphQL
Refcard GraphQL
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/Leaseplan
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 
RefCard API Architecture Strategy
RefCard API Architecture StrategyRefCard API Architecture Strategy
RefCard API Architecture Strategy
 
LA DUCK CONF 2023 - Journal de bord d’un archi dans l’océan du green
LA DUCK CONF 2023 - Journal de bord d’un archi dans l’océan du greenLA DUCK CONF 2023 - Journal de bord d’un archi dans l’océan du green
LA DUCK CONF 2023 - Journal de bord d’un archi dans l’océan du green
 

Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blanc, blanc bonnet ?

  • 1. 1 Coin Coin ! La Duck Conf by OCTO Technology © 2023 - All rights reserved X
  • 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
  • 4. Coin Coin ! 4 La Duck Conf by OCTO Technology © 2023 - All rights reserved Un peu d’histoire 01
  • 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
  • 7. Coin Coin ! 7 La Duck Conf by OCTO Technology © 2023 - All rights reserved Et place au code… Autour des années 2000
  • 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
  • 9. 9 Coin Coin ! La Duck Conf by OCTO Technology © 2023 - All rights reserved Architecture spaghetti dans la vraie vie
  • 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
  • 17. Coin Coin ! 17 La Duck Conf by OCTO Technology © 2023 - All rights reserved L’architecture hexagonale 02
  • 18. Coin Coin ! 18 La Duck Conf by OCTO Technology © 2023 - All rights reserved Isolation de la valeur
  • 19. Coin Coin ! 19 La Duck Conf by OCTO Technology © 2023 - All rights reserved Hexagonal architecture d’Alistair Cockburn (2005)
  • 20. Coin Coin ! 20 La Duck Conf by OCTO Technology © 2023 - All rights reserved Comment pérenniser l’hexagone ? Sauf si…
  • 21. Coin Coin ! 21 La Duck Conf by OCTO Technology © 2023 - All rights reserved Architecture port et adapter
  • 22. Coin Coin ! 22 La Duck Conf by OCTO Technology © 2023 - All rights reserved Gauche / droite ?
  • 23. Coin Coin ! 23 La Duck Conf by OCTO Technology © 2023 - All rights reserved Architecture évolutive Repousser les choix techniques
  • 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
  • 25. Coin Coin ! 25 La Duck Conf by OCTO Technology © 2023 - All rights reserved Taille des ports ? OU
  • 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”
  • 27. Coin Coin ! 27 La Duck Conf by OCTO Technology © 2023 - All rights reserved La clean architecture 03
  • 28. Coin Coin ! 28 La Duck Conf by OCTO Technology © 2023 - All rights reserved Clean architecture par Robert C. Martin en 2012
  • 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…
  • 31. Coin Coin ! 31 La Duck Conf by OCTO Technology © 2023 - All rights reserved Mise en oeuvre du use case
  • 32. Coin Coin ! 32 La Duck Conf by OCTO Technology © 2023 - All rights reserved Cercles concentriques sous forme hexagonale
  • 33. Coin Coin ! 33 La Duck Conf by OCTO Technology © 2023 - All rights reserved Screaming architecture Taille des ports ?
  • 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
  • 35. Coin Coin ! 35 La Duck Conf by OCTO Technology © 2023 - All rights reserved Bilan 04
  • 36. Coin Coin ! 36 La Duck Conf by OCTO Technology © 2023 - All rights reserved Questionnaire Konbini Clean Hexagonal
  • 37. Coin Coin ! 37 La Duck Conf by OCTO Technology © 2023 - All rights reserved Parfois aucun des deux Non adapté Adapté
  • 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
  • 40. Coin Coin ! 40 La Duck Conf by OCTO Technology © 2023 - All rights reserved Une terminologie différente
  • 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
  • 42. Coin Coin ! 42 La Duck Conf by OCTO Technology © 2023 - All rights reserved Mais peux-tu répondre à la question ? Clean Hexagonal
  • 43. Coin Coin ! 43 La Duck Conf by OCTO Technology © 2023 - All rights reserved Ma réponse La clean archigonale
  • 44. Coin Coin ! 44 La Duck Conf by OCTO Technology © 2021 - All rights reserved
  • 45. Coin Coin ! 45 La Duck Conf by OCTO Technology © 2023 - All rights reserved