11 points par xguru 2025-03-17 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le NYT a mis à niveau React 16 vers React 18 et, à cette occasion, a remplacé l’utilitaire de test Enzyme par React Testing Library
    • Enzyme était utilisé depuis 2016, mais la plateforme React recommandant désormais React Testing Library, une transition est devenue nécessaire
  • Enzyme génère une représentation textuelle de l’arbre DOM, tandis que React Testing Library crée le véritable arbre DOM et effectue le rendu comme une partie du DOM complet
  • Comme il fallait convertir des centaines de fichiers, il était essentiel de maintenir le trafic du site et d’éviter toute interruption de service

Trois stratégies de migration

  • Approche Bulldozer
    • Consiste à modifier massivement l’ensemble des fichiers en une seule fois
    • Risque élevé de conflits de code et collaboration difficile
  • Approche Consensus
    • Méthode collaborative où les ingénieurs avancent en gardant chacun la responsabilité de leurs fichiers
    • Adaptée aux nouveaux projets ou aux projets critiques
  • Approche Piecemeal
    • Consiste à corriger progressivement les fichiers individuellement, de manière stratégique
    • Des mises à jour régulières au quotidien créent une dynamique progressive

Le choix du New York Times : l’approche Piecemeal

  • Les modifications ont commencé par les fichiers les plus simples → d’abord ceux qui ne nécessitaient qu’une ou deux lignes de changement
  • L’accent a été mis sur la manière de trouver les éléments du DOM dans React Testing Library et de les tester
  • Une fois les premiers correctifs terminés, il devenait possible d’étendre progressivement le travail à des tests plus complexes
  • À mesure que le travail avançait, des modèles cohérents se sont formés, rendant les corrections plus faciles
  • Les ingénieurs pouvaient participer facilement, ce qui a renforcé la collaboration

Résultats et bénéfices de la migration

  • L’approche Piecemeal prend plus de temps, mais elle permet la stabilité et une progression continue
  • Des modèles cohérents ont émergé dans la base de code, ce qui a facilité même les tests complexes
  • Un environnement a été créé dans lequel d’autres ingénieurs pouvaient facilement participer et contribuer
  • Le processus de migration a permis de minimiser les bugs et d’éviter les interruptions de fonctionnalité
  • Le succès de la migration a permis de mieux équilibrer la réduction de la dette technique et le développement continu

Conclusion

  • Grâce à l’approche Piecemeal, la base de code a été migrée avec succès vers React Testing Library
  • Des corrections progressives ont renforcé la collaboration tout en préservant la qualité du code
  • Même les tests complexes ont pu être traités plus facilement grâce à des modèles cohérents
  • Une planification stratégique et un bon équilibre dans la gestion de la dette technique ont permis une migration stable

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.