Clean Architecture

3 min

La Clean Architecture est une ligne directrice pour l'architecture système proposée par Robert C. Martin (surnommé Uncle Bob). Elle s'inspire de nombreuses directives architecturales comme l'Architecture Hexagonale, l'Architecture en Oignon, etc., développées au fil des années.

C'est l'une des directives suivies par les ingénieurs logiciels pour construire des logiciels évolutifs, testables et maintenables.

Pourquoi Avons-Nous Besoin "d'Architecturer" ?
"L'objectif de l'architecture logicielle est de minimiser les ressources humaines nécessaires pour construire et maintenir le système requis."

― Robert C. Martin, *Clean Architecture*

Les avantages d'une architecture appropriée

✔ Testable

✔ Maintenable

✔ Modifiable

✔ Facile à Développer

✔ Facile à Déployer

✔ Indépendante

La Clean Architecture

Voici l'illustration de la Clean Architecture créée par Robert Martin :

Clean Coder Blog
Source : Clean Coder Blog

Nous pouvons y voir quatre couches dans le diagramme :

🔵 Bleue, 🟢 Verte, 🔴 Rouge et 🟡 Jaune.

Chaque cercle représente différentes zones du logiciel. La couche la plus externe est le niveau le plus bas du logiciel et plus nous allons vers le centre, plus le niveau est élevé. En général, plus on va en profondeur, moins la couche est sujette à changement.

La Règle des Dépendances

La Règle des Dépendances stipule que les dépendances du code source ne peuvent pointer que vers l'intérieur.

Cela signifie que rien dans un cercle interne ne peut connaître quoi que ce soit à propos de quelque chose dans un cercle externe. Autrement dit, le cercle interne ne devrait pas dépendre de quoi que ce soit dans le cercle externe. Les flèches noires représentées dans le diagramme montrent cette règle de dépendance.

Cadres et Pilotes

Les zones logicielles résidant à l'intérieur de cette couche sont :

- Interface Utilisateur (UI)
- Base de Données (DB)
- Interfaces Externes (ex : API de plateforme native)
- Web (ex : Requête Réseau)
- Appareils (ex : Imprimantes et Scanners)

Adaptateurs d'Interface

Cette couche contient :

- Présentateurs (Logique UI, États)
- Contrôleurs (Logique UI, États)
- Passerelles (CRUD)

Règles Métiers de l'Application

Les règles qui ne sont pas des règles métiers principales mais essentielles pour cette application. Cette couche contient les Cas d'Usage.

Règles Métiers de l'Entreprise

Cette couche contient les règles métiers essentielles ou spécifiques au domaine. Elle est la moins sujette aux changements.

Un petit mot pour la fin ...

L'architecture propre offre une approche efficace pour construire des applications évolutives, maintenables et testables. Les trois couches de base, à savoir le domaine, l'infra et la couche principale, permettent une séparation claire des préoccupations, ce qui permet de créer des bases de code modulaires et flexibles.

En encapsulant la logique d'entreprise dans la couche Domaine, en implémentant les dépendances externes dans la couche Infra et en assemblant les cas d'utilisation dans la couche Principale, les développeurs peuvent obtenir une architecture bien organisée, plus facile à comprendre et à maintenir.

Notre newsletter tous les mois :
Je m'abonne
Merci ! C'est dans la boîte :)
Oops! Something went wrong while submitting the form.
Partager sur :

Échangeons
sur votre projet !

Nous contacter

Simulateur

Bienvenue dans le
simulateur d’estimation

Sélectionnez
vos besoins

Sélectionnez un ou plusieurs choix

Définissez les
fonctionnalités

Sélectionnez un ou plusieurs choix

Dernière
étape !

Renseignez votre adresse mail pour recevoir l’estimation !
Obtenez l’estimation
Précédent
Suivant

Bravo ! Vous avez terminé
l’estimation de votre future app !

Vous recevrez dans votre boite mail l’estimation personnalisé. Une estimation vous offre la possibilité de vous projeter dans un budget, vous permettant ainsi de planifier en toute confiance. Néanmoins, chez Yield, nous adoptons une approche agile, prêts à remettre en question et ajuster nos évaluations en fonction de l'évolution de vos besoins et des spécificités de votre projet.
Retour au site
Oops! Something went wrong while submitting the form.