11 Punkte von xguru 2025-03-17 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Die NYT stellte ihre Test-Utilities von Enzyme auf React Testing Library um, während sie von React 16 auf React 18 aktualisierte
    • Seit 2016 wurde Enzyme verwendet, doch da die React-Plattform React Testing Library empfiehlt, wurde ein Umstieg notwendig
  • Enzyme erzeugt eine String-Repräsentation des DOM-Baums, während React Testing Library einen echten DOM-Baum erzeugt und als Teil des gesamten DOM rendert
  • Da Hunderte von Dateien umgestellt werden mussten, waren die Aufrechterhaltung des Site-Traffics und die Vermeidung von Serviceunterbrechungen entscheidend

Drei Migrationsstrategien

  • Bulldozer-Ansatz
    • Groß angelegte Änderungen an allen Dateien auf einmal
    • Hohes Risiko für Code-Konflikte und erschwerte Zusammenarbeit
  • Consensus-Ansatz
    • Kollaborativer Ansatz, bei dem Ingenieur:innen jeweils die Verantwortung für einzelne Dateien übernehmen
    • Geeignet für neue oder besonders wichtige Projekte
  • Piecemeal-Ansatz
    • Strategische, schrittweise Anpassung einzelner Dateien
    • Durch tägliche, konsistente Updates entsteht nach und nach Momentum

Die Wahl der New York Times: der Piecemeal-Ansatz

  • Beginn mit den einfachsten Dateien → zuerst Dateien bearbeiten, die nur ein oder zwei Zeilen Änderungen benötigen
  • Fokus darauf, in React Testing Library DOM-Elemente zu finden und diese zu testen
  • Nach den ersten Anpassungen kann schrittweise auf komplexere Tests ausgeweitet werden
  • Mit fortschreitender Arbeit entstehen konsistente Muster, die die Anpassungen erleichtern
  • Ingenieur:innen können sich leicht beteiligen, was die Zusammenarbeit stärkt

Migrationsergebnis und Erfolge

  • Der Piecemeal-Ansatz dauert länger, ermöglicht aber Stabilität und kontinuierlichen Fortschritt
  • Im Codebestand entstehen konsistente Muster, sodass auch komplexe Tests leichter gelöst werden können
  • Es entsteht ein Umfeld, in dem andere Ingenieur:innen einfach mitarbeiten und beitragen können
  • Während der Migration werden Bugs minimiert und Funktionsunterbrechungen verhindert
  • Der erfolgreiche Umstieg half, technische Schulden abzubauen und zugleich die Balance für kontinuierliche Weiterentwicklung zu wahren

Fazit

  • Mit dem Piecemeal-Ansatz wurde die Codebasis erfolgreich auf React Testing Library umgestellt
  • Die schrittweisen Änderungen stärkten die Zusammenarbeit und sicherten die Codequalität
  • Auch komplexe Tests lassen sich dank konsistenter Muster leichter bewältigen
  • Durch die Balance aus strategischer Planung und Abbau technischer Schulden konnte die Migration stabil abgeschlossen werden

Noch keine Kommentare.

Noch keine Kommentare.