Mathieu Desnouveaux

Les aventuriers du code legacy

Stratégies et bonnes pratiques pour travailler avec du code legacy, présentées par Mathieu Desnouveaux lors des AperoWeb Nancy

Cette sketchnote résume la conférence 'Les Aventuriers du Code Legacy' présentée par Mathieu Desnouveaux lors de l'Apéro Web Nancy le 28 février 2023. Elle est organisée comme une carte au trésor avec un scout symbolisant l'amélioration continue du code legacy. Le code legacy est défini comme du code en production non testé, illustré par une affiche humoristique. Les types de code legacy incluent le code exécuté en production, le code rentable, et le code contenant de la valeur métier. Une balance montre l'équilibre nécessaire entre la correction de bugs, l'ajout de fonctionnalités, et la confiance garantie par les tests. Un cycle illustre le paradoxe du legacy : besoin de tests pour changer le code, mais besoin de changer le code pour ajouter des tests. Les raisons pour toucher au code legacy sont montrées avec des icônes de risque, de correction de bugs, et d'ajout de fonctionnalités. La règle des Boy Scouts est représentée par un scout avec un drapeau, symbolisant l'amélioration continue. Les actions recommandées incluent lever les ambiguïtés, réduire la complexité, découpler le code, et se protéger avec des tests et des feature flags. Un robot symbolise l'automatisation avec des outils comme l'analyse statique et Rector en PHP. Des ressources supplémentaires sont recommandées, avec des icônes de livres et des liens vers des katas et des comptes Twitter. La livraison par étapes est illustrée par des icônes de tests, de réécriture de code, et d'ajout de fonctionnalités, avec une flèche indiquant la réduction du scope. La sketchnote souligne l'importance de l'amélioration continue et de l'utilisation d'outils pour faciliter le travail avec le code legacy.

Cette sketchnote a été créée pour m'aider lors de la rédaction de ma conférence Les Aventuriers du Code Legacy, présentée lors des AperoWeb Nancy. Elle aborde les défis et stratégies pour travailler efficacement avec du code legacy.

Contenu

Je définis le code legacy comme du code en production non testé mais qui conserve de la valeur métier. J'explore les raisons qui poussent à intervenir sur du legacy : mise à jour, correction de bugs, ajout de fonctionnalités, tout en soulignant les risques inhérents dus au manque de tests et à la complexité.

La présentation introduit la règle des Boy Scouts pour l'amélioration continue et détaille les actions concrètes : lever les ambiguïtés, réduire la complexité, découpler le code, se protéger avec des tests, et livrer par étapes. L'accent est mis sur l'automatisation et les outils comme l'analyse statique et Rector en PHP.

Points clés à retenir

  • Définition pragmatique : Code legacy = code en production non testé mais avec valeur métier
  • Règle des Boy Scouts : Laisser le code dans un meilleur état qu'on ne l'a trouvé
  • Approche par étapes : Découpler, tester, automatiser pour réduire les risques
  • Outils d'aide : Analyse statique, Rector, et feature flags pour sécuriser les interventions
Thèmes:
🏗️ Architecture
Événement:
🍻 Apéro Web

Source: Mathieu Desnouveaux
Carnet:
📚 Carnet 2022-2023

Cette sketchnote est disponible dans un carnet physique.