Qu’est-ce que la Clean Architecture ?
La Clean Architecture est un modèle d’architecture logicielle proposé par Robert C. Martin (Uncle Bob).
Son principe : séparer clairement la logique métier du reste du code (interface, base de données, frameworks) afin de créer des applications plus maintenables, testables et indépendantes des technologies.
Objectif
Permettre de développer un logiciel :
- Durable, car indépendant des outils ou frameworks ;
- Évolutif, car chaque couche est isolée ;
- Testable, grâce à une logique métier découplée de l’infrastructure.
La Clean Architecture vise à placer la logique métier au centre et à isoler tout ce qui change rapidement autour d’elle.
Structure de la Clean Architecture
Entities (ou Domaine)
- Contient les règles métier et les objets centraux.
- Ne dépend d’aucun autre module.
Use Cases (ou Application)
- Gère les scénarios métier (création d’un devis, validation d’une commande…).
- Utilise les entités et appelle les interfaces nécessaires.
Interface Adapters
- Traduit les données entre le domaine et les technologies externes (API, BDD, UI).
- Contient les contrôleurs, repositories et DTO.
Frameworks & Drivers (Infrastructure)
- C’est la couche la plus externe : frameworks, base de données, interface web, etc.
Principe clé : les dépendances vont toujours de l’extérieur vers l’intérieur, jamais l’inverse.
Avantages
Avantage |
Description |
|---|---|
| Indépendance technologique | Le code métier ne dépend d’aucun framework |
| Testabilité | Les règles métier sont isolées et faciles à tester |
| Maintenance facilitée | Les changements d’interface n’affectent pas le cœur du système |
| Robustesse | Une base solide et stable dans le temps |
Exemple concret
Dans un ERP, les règles de gestion des factures (calcul TVA, validation, échéance) appartiennent au domaine, tandis que la base de données ou l’interface utilisateur se situent dans les couches externes.
Changer la base (MySQL → PostgreSQL) n’impacte pas la logique métier.
