Skills à maîtriser

🧡 Architecture Hexagonale

<aside> 📙 L'Architecture Hexagonale, également connue sous le nom de Ports and Adapters (Ports et Adaptateurs), met l'accent sur la découpe des applications en domaines et en couches distinctes. Elle promeut l'idée que le cœur de l'application, le domaine métier, doit être isolé et indépendant des détails techniques tels que les frameworks et les technologies externes. Les adaptateurs sont utilisés pour connecter le cœur de l'application avec les éléments externes, tels que les interfaces utilisateurs ou les bases de données.

</aside>

Grands principes

Architecture Hexagonale et Clean Architecture

Il existe :

La règle d’or étant que le métier doit être totalement indépendant, c’est-à-dire que c’est l’infrastructure qui dépend du domaine. En d’autres termes, toutes les dépendances vont de l’extérieur vers l’intérieur.

Architecture en couches :

Pour illustrer au mieux le concept de l’architecture hexagonale, il faut le concevoir comme un système basé sur des couches. Au centre : la logique métier, qui est entourée de plusieurs autres couches correspondant à la partie technique.

Les avantages à mettre en place l’Architecture Hexagonale

  1. D’une part, on peut commencer à travailler sur la partie métier en premier, étant donné qu’on ne dépend de rien. On peut le faire sans savoir ce qu’on va employer comme solution technique. C’est donc un réel gain de temps.
  2. On est certain de faire une partie métier isolée du reste, sans dépendance, ce qui permet de la protéger face aux changements qui viennent de l’extérieur. Cela garantit une stabilité “optimale” et une durabilité à long terme de la base du code, afin de garder une maîtrise complète sur le métier.
  3. On peut tester automatiquement de manière plus simple, parce que le métier n’a pas de dépendance donc son exécution est simple et rapide, mais aussi parce que pouvoir brancher les adaptateurs de nos choix sur les ports permet plus facilement d’optimiser l’environnement de test du produit. Cela encourage des méthodes de travail comme le TDD, qui consiste à écrire les tests avant d’écrire le code. Ainsi, on garantit que le code métier est recouvert d’une couverture de test plus complète.
  4. S’imposer des paradigmes (normes/conventions) permet d’automatiser le process de développement (gain d’efficacité) et de faciliter l’arrivée d’un développeur sur un projet sans être perdu dans son architecture.