- O NYT migrou seu utilitário de testes de Enzyme para React Testing Library ao fazer o upgrade do React 16 para o React 18
- Usava Enzyme desde 2016, mas a migração se tornou necessária à medida que a plataforma React passou a recomendar o React Testing Library
- O Enzyme gera uma representação em string da árvore DOM, enquanto o React Testing Library cria a árvore DOM real e a renderiza como parte do DOM completo
- Como era preciso migrar centenas de arquivos, era essencial manter o tráfego do site e evitar interrupções no serviço
Três estratégias de migração
- Abordagem Bulldozer
- Forma de modificar todos os arquivos de uma vez, em grande escala
- Alto risco de conflitos de código e dificuldade de colaboração
- Abordagem Consensus
- Modelo colaborativo em que os engenheiros têm responsabilidade sobre arquivos específicos
- Adequado para projetos novos ou projetos importantes
- Abordagem Piecemeal
- Modificações estratégicas e graduais em arquivos individuais
- Atualizações consistentes no dia a dia para criar impulso de forma progressiva
A escolha do New York Times: abordagem Piecemeal
- Começar pelos arquivos mais simples → trabalhando primeiro nos que exigiam mudar uma ou duas linhas
- Foco em como localizar elementos do DOM no React Testing Library e testá-los
- Depois que os ajustes iniciais fossem concluídos, seria possível expandir gradualmente para testes mais complexos
- À medida que o trabalho avançava, formavam-se padrões consistentes que facilitavam as correções
- Os engenheiros podiam participar com facilidade, fortalecendo a colaboração
Resultados e ganhos da migração
- A abordagem Piecemeal leva mais tempo, mas permite estabilidade e progresso contínuo
- Padrões consistentes surgiram na base de código, tornando até testes complexos mais fáceis de resolver
- Criação de um ambiente em que outros engenheiros podiam participar e contribuir com facilidade
- Minimização de bugs e prevenção de interrupções de funcionalidades durante a migração
- O sucesso da migração permitiu equilibrar a redução da dívida técnica com o desenvolvimento contínuo
Conclusão
- A abordagem Piecemeal permitiu migrar com sucesso a base de código para React Testing Library
- Ajustes graduais fortaleceram a colaboração e mantiveram a qualidade do código
- Até testes complexos passaram a ser tratados com facilidade seguindo padrões consistentes
- A migração foi concluída com estabilidade por meio do equilíbrio entre planejamento estratégico e redução da dívida técnica
Ainda não há comentários.