- NYT cambió su utilidad de pruebas de Enzyme a React Testing Library mientras actualizaba de React 16 a React 18
- Habían usado Enzyme desde 2016, pero como la plataforma de React pasó a recomendar React Testing Library, la migración se volvió necesaria
- Enzyme genera una representación en texto del árbol del DOM, mientras que React Testing Library crea el árbol real del DOM y lo renderiza como parte del DOM completo
- Como había que migrar cientos de archivos, era importante mantener el tráfico del sitio y evitar interrupciones del servicio
Tres estrategias de migración
- Enfoque Bulldozer
- Método de modificar masivamente todos los archivos de una sola vez
- Alto riesgo de conflictos de código y dificultad para colaborar
- Enfoque Consensus
- Método colaborativo en el que los ingenieros tienen propiedad sobre archivos individuales y avanzan en ellos
- Adecuado para proyectos nuevos o proyectos importantes
- Enfoque Piecemeal
- Modificar archivos individuales de forma estratégica y gradual
- Crear impulso progresivo con actualizaciones diarias consistentes
La elección de The New York Times: enfoque Piecemeal
- Empezaron corrigiendo los archivos más simples → primero trabajaron en archivos que solo requerían cambiar una o dos líneas
- Se enfocaron en cómo encontrar elementos del DOM y probarlos en React Testing Library
- Una vez completadas las correcciones iniciales, pudieron extenderse gradualmente a pruebas más complejas
- A medida que avanzó el trabajo, se fue formando un patrón constante que facilitó las correcciones
- Como los ingenieros podían participar fácilmente, fue posible fortalecer la colaboración
Resultados y logros de la migración
- El enfoque Piecemeal toma más tiempo, pero permite estabilidad y avance continuo
- Se generó un patrón consistente en el codebase, lo que hizo más fácil resolver incluso pruebas complejas
- Se creó un entorno en el que otros ingenieros podían participar y contribuir con facilidad
- Durante la migración, se minimizaron los bugs y se evitaron interrupciones de funcionalidades
- El éxito de la migración permitió equilibrar la resolución de deuda técnica con el desarrollo continuo
Conclusión
- Con el enfoque Piecemeal, lograron migrar con éxito el codebase a React Testing Library
- Las correcciones graduales fortalecieron la colaboración y mantuvieron la calidad del código
- Incluso las pruebas complejas pudieron manejarse fácilmente siguiendo patrones consistentes
- La migración se completó de forma estable gracias al equilibrio entre planificación estratégica y resolución de deuda técnica
Aún no hay comentarios.