IT | Architecture Hexagonale

Bonjour internaute !

Ici, simplement quelques notes concernant un retour d'expérience sur l'architecture héxagonale, principalement utilisée pour un Web service.

 

1 - Présentation de l'architecture

Difficile d'être plus clair que ce blog : Blog de Thomas Pierrain

2 - Retour d'expérience

Retour d'expérience à + 2 mois

De ma propre expérience, il faut être conscient d'une chose : les avantages de l'architecture hexagonale se verront surtout dans le futur. Les efforts fournis lors de l'implémentation n'apportent que peu de retours directs. Il faut donc y croire avant de voir.

- Nous soulignerons tout de même une propreté dans le code.

- Le fait de séparer le métier de l'infrastructure apporte une lisibilité architecturelle assez claire.

- Quand un élément du métier change, toutes les infras concernées doivent aussi changer. C'est-à-dire l'élément central du métier et tous les adapters concernés (et donc les ports).

- Dans le cas où une API est présente, un adapteur et un port sont créés. Quid de la possibilité de découper les traitements si cette API devient très lourde et propose des traitements très divers.

 

Retour d'expérience à + 5 mois

- La communication entre hexagones est sujette à discussions. Faut-il privilégier des Dtos connus de tous, créés par les différents métiers ? Ou créer des dépendances entre hexagones ? Ou encore, laisser la connaissance au développeur des propriétés des objets des autres hexagones ?

Beaucoup de questions qui ont trouvé leurs réponses dans un schéma fonctionnel. Le chemin préférentiel tend à envisager les dépendances possibles entre hexagones. On peut en effet tenter de construire un graphe orienté acyclique tel que les dépendances partent d'une ou plusieurs sources et produisent un flux unidirectionnel (du haut vers le bas, en downstream, du bas vers le haut, en upstream). Par ailleurs, imaginer un pool d'objets communs à tous n'est pas dénué de sens dans un environnement où l'acyclicité des dépendances est conservé. En outre cela signifie qu'il ne faut pas que ce pool d'objets communs puissent dépendre d'un hexagone utilisant un objet du pool ou dépendant d'un autre hexagone dépendant du pool.

 

Zircon - This is a contributing Drupal Theme
Design by WeebPal.