Jouez d'abord au jeu : voku.github.io/DevLabyrinth/
Il enseigne le problème plus rapidement qu’un autre sermon sur l’architecture ne le pourrait jamais.
Vous entrez dans un labyrinthe.
Des murs. Couloirs. Se tourne. Des impasses.
Ennuyeux, oui.
Mais juste.
Vous pouvez expliquer où vous êtes. Vous pouvez expliquer comment vous êtes arrivé là. Vous pouvez revenir à pied. Vous pouvez dessiner une carte.
C'est un logiciel maintenable.
Logiciel pas parfait.
Pas un logiciel "propre".
Logiciel maintenable.
Le miracle ennuyeux où la structure que vous voyez est la structure que vous utilisez réellement.
À un moment donné, quelqu'un ajoute un trou dans le sol.
Vous y entrez et atterrissez ailleurs.
Bon.
Cinq couloirs évités. Trois tours sautés. Pas de cérémonie. Rapide.
Quelqu'un dit :
"C'est beaucoup plus facile."
Ils ont raison.
Pour l'instant.
Et c’est ainsi que commencent la plupart des mauvaises architectures.
Pas avec le mal.
Avec commodité.
Un raccourci peut suffire.
Un trou peut être documenté.
Un tunnel de secours peut être marqué sur la carte.
Le problème commence lorsque chaque développeur frustré ajoute son propre raccourci.
Un trou près de l'entrée. Un tunnel près du milieu. Une échelle près de la sortie. Une trappe de la salle C à la salle Q parce que "nous en avions besoin pour cette seule version".
Le labyrinthe fonctionne toujours.
Techniquement.
Mais plus personne ne navigue.
Ils se souviennent des trucs.
"Utilisez le trou vert, puis sautez l'échelle, puis ne touchez pas le tunnel à moins que le niveau n'ait été réinitialisé."
Ce n'est pas de l'architecture.
C'est du folklore avec accès au déploiement.
Les murs sont toujours là.
Les couloirs existent toujours.
Le chemin officiel semble toujours normal.
Mais le véritable mouvement se produit sous terre.
La carte dit :
"Marcher d'un point A à un point B."
Le système dit :
"En fait, nous sautons de A à Q à travers un tunnel caché en fonction de ce qui s'est passé plus tôt."
Félicitations.
Votre code a maintenant deux architectures.
Celui qui est visible.
Et le vrai.
Devinez lequel interrompt la production.