Legacy Code Gets Worse With Age
Código legado não melhora com o tempo. Ele piora.
Na semana passada, passei três horas corrigindo um bug. Deveria ter levado 20 minutos. O problema era um módulo de validação de 2019. Todos o ignoravam porque "funciona". Não funcionava. Encontrei um comentário TODO de 2020 dentro do arquivo.
Muitas pessoas tratam o código legado como uma dívida opcional. Elas acham que podem pagá-la quando tiverem tempo. O código legado é mais como mofo. Ele se espalha. Ele contamina outras partes do seu sistema. Quanto mais tempo você o ignora, mais caro fica para limpá-lo.
Isso cria um ciclo vicioso:
- Você herda um projeto bagunçado.
- Você adiciona mais uma instrução if para fazer sua funcionalidade funcionar.
- Seis meses depois, outra pessoa faz o mesmo.
- Um ano depois, o arquivo tem 800 linhas e zero testes.
Este código "funcional" tem custos ocultos:
- A velocidade de desenvolvimento cai. Você gasta mais tempo lendo o contexto do que escrevendo código.
- Os bugs aumentam. Corrigir uma coisa quebra outra.
- O onboarding torna-se difícil. Novos desenvolvedores têm dificuldade para entender por que a lógica está duplicada em todos os lugares.
Fique atento a estes sinais de alerta:
- Comentários inúteis ou mentirosos.
- Lógica de negócio duplicada em arquivos diferentes.
- Dependências circulares e alto acoplamento.
Não tente reescrever tudo. Reescrevimentos completos falham 80% das vezes. Você passa meses reconstruindo o que já existe enquanto o negócio espera por novas funcionalidades.
Use refatoração incremental com testes de caracterização:
- Capture o comportamento atual com testes, mesmo que ele seja estranho.
- Refatore sem alterar esse comportamento.
- Repita até que o código esteja legível.
- Só então mude o comportamento com testes reais.
Siga estas regras para evitar armadilhas:
- Nunca refatore sem testes.
- Não altere o comportamento durante uma refatoração. Um bug pode ser uma funcionalidade não documentada na qual um cliente confia.
- Não mexa em código quieto. Se um módulo não muda há três anos e não causa problemas, deixe-o como está.
Foque sua energia no código que você toca com frequência.
Fonte: https://dev.to/taina_costa_f/legacy-code-nao-envelhece-como-vinho-quanto-mais-espera-pior-fica-132h
