Ca sent pas bon , Gary
Aujourd'hui, je suis entrain de lire agile software development, et je suis sur le chapitre "Design Smells - The Odors of rotting software"
Et y'a 7 critères qui sont importants qui montrent ,pour le design choisi, que le code ne convient pas :
La rigidité
On a tous été confronté un jour ou l'autre à une mauvaise estimation du travail à faire car le changement entraine une cascade de mise à jour.Il y a quelques années, je bossais pour des usines de pare-choc de voiture et j'assurais la maintenance du logiciel de supervision de production.
Le logiciel était un monolithe, sans aucune séparations des responsabilités : ajouter un champ sur un formulaire entrainait des mises à jour d'éléments qui utilisait l'objet mais pas le nouvel attribut. On se retrouvait a devoir mettre à jour un service non lié à l'interface.
La moindre feature se transformait en parcours du combattant pour trouver tous les impacts...SANS TU/TI/CICD. (Faites toujours des TU, par pitié!)
La fragilité
Toujours sur les pare-chocs avec cette histoire de fomulaire (l'écran m'a traumatisé) :
C'était l'écran après celui de login, l'écran de travail des opérateur.trices
Tu bougeais un champ d'un pixel, l'écran ne compilait plus. Pourquoi ? Parce que le code METIER est dépendant des champs affichés et positionnés à l'écran.
Un autre exemple, plus à l'échelle du logiciel et pas juste d'un écran, le moindre changement dans la partie "infra" (SQL) impactait la partie métier, sur du code métier qui n'avait pas de lien direct.