- 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.