À retenir
- Sépare le métier (le
quoi) de la technique (lecomment). - Permet de tester le logiciel sans avoir besoin d'Internet ou d'une base de données réelle.
- Facilite la maintenance et l'évolution technologique sur le long terme.
L'architecture hexagonale est une méthode d'organisation du code informatique qui sépare la logique métier (le « cœur » du programme) des outils techniques (base de données, interface utilisateur, services externes). L'idée est de rendre l'application interchangeable : comme une prise électrique universelle, on peut y brancher différents « adaptateurs » sans jamais toucher au moteur interne du logiciel.
Étymologie
Ce concept a été proposé par Alistair Cockburn en 2005. Son nom technique est « Ports et Adaptateurs » (Ports and Adapters). Le terme « hexagonal » est une métaphore visuelle : l'hexagone possède plusieurs faces, symbolisant les nombreux points d'entrée et de sortie possibles pour communiquer avec le cœur de l'application, sans être limité par une structure pyramidale classique.
Exemples d'usage
- Une application de gestion de stock où le calcul des inventaires reste identique, que l'on utilise une base de données SQL ou un simple fichier texte pour stocker les données.
- Un service météo qui peut récupérer ses informations auprès de différents fournisseurs (Météo France, OpenWeather) simplement en changeant un connecteur, sans modifier le code qui affiche les prévisions.
Cas d'usage
On utilise cette architecture dans le développement de logiciels complexes, les microservices et les projets qui doivent durer longtemps. Elle est particulièrement utile quand on veut pouvoir tester son code facilement ou changer de technologie (changer de base de données ou de framework web) sans tout réécrire.
Bonnes pratiques
Le « cœur » du logiciel ne doit jamais connaître les détails techniques de l'extérieur. Il définit des interfaces (des contrats) que les adaptateurs extérieurs doivent respecter. Une bonne pratique consiste à commencer par coder la logique métier avant même de choisir quelle base de données ou quel framework web sera utilisé.
Synonymes
Antonymes
Conseil
Si vous débutez, n'essayez pas de tout rendre hexagonal tout de suite. Commencez par isoler vos calculs importants (vos règles métier) dans des fonctions ou des classes qui ne dépendent d'aucune bibliothèque externe. C'est le premier pas vers cette architecture.
Questions fréquentes
Faut-il forcément 6 côtés à mon application ?
Non, le chiffre six est purement illustratif pour montrer qu'il peut y avoir de nombreuses connexions. C'est une métaphore graphique.
Est-ce la même chose que la Clean Architecture ?
Elles sont très proches et partagent les mêmes principes d'isolation. La Clean Architecture est souvent vue comme une évolution ou une variante de l'architecture hexagonale.
Est-ce que ça rend le code plus complexe ?
Au début oui, car il faut créer plus de fichiers et d'interfaces. Mais cela simplifie énormément la vie dès que le projet grandit ou doit évoluer.