Une bonne architecture permet d'atteindre 4 objectifs ⬇️

1️⃣ Gérer l'état du système

2️⃣ Structurer les traitements complexes

3️⃣ Soutenir la charge

4️⃣ Absorber les changements à l'avenir

Ca paraît simple comme cela, mais c'est un système complexe, un problème surcontraint.

En effet, 1️⃣, 2️⃣, 3️⃣, et 4️⃣ sont conflictuels. Toute tentative de franchement favoriser un objectif se fait au détriment d'au moins un autre.

Je suis étonné qu'on n'en parle pas plus souvent, et qu'on présente certains styles architecturaux comme "absolument supérieurs" à d'autres alors qu'il n'y a que peu d'échappatoire à la complexité [1]. No free lunch, dirait mon promoteur de thèse.

#SoftwareEngineering


  1. entendons-nous bien : il y a des architectures strictement inférieures. C'est-à-dire qu'il n'est pas rare de tomber sur du code qui n'atteint aucun des 4 objectifs. ↩︎

Retour