Estou trabalhando em uma base de código herdada de pequeno a médio porte e, ao trabalhar em um ticket, encontrarei o código que deve ser limpo ou que preciso fazer a limpeza apenas para poder entender o acompanhamento do aplicativo.
Um exemplo real é:
if( !a && b ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}else if( a ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}else if( !b && ( a || c ) ){
doSomething1();
doSomething2();
doSomething3();
doSomething4();
doSomething5();
}
Outro é corrigir erros de digitação e Engrish em comentários e documentação em uma dúzia de arquivos de origem.
No entanto, muitas vezes essa limpeza acaba não relacionada ao problema principal e eu me pergunto como é melhor fazer a limpeza. Do meu ponto de vista, existem três opções:
- Antes da correção: isso funciona cronologicamente, pois é a ordem em que ocorrem, mas se eles quebram algo, complicam a correção e torna mais difícil diferenciá-la com o que estava em produção. Ele também introduz um commit adicional que é ruído.
- Com a correção: mas isso obscurece a substituição real do código defeituoso por arquivos nos quais
findGeoragphy
estava corretofindGeography
. - Após a correção: isso requer remoção e limpeza feitas, que ajudaram você a entender o código e, em seguida, testá-la novamente, confirmar a correção e, em seguida, voltar e refazer a limpeza. Isso permite a comparação mais limpa do código defeituoso, mas duplica o esforço e pode levar a confirmações falsas também.
tl; dr: Então, qual é o melhor método para confirmar o código de limpeza?
Contexto: Não temos testes de unidade e produtos de desenvolvimento executando alterações, dando-lhes uma olhada e jogando-os por cima do muro para o controle de qualidade para validar através de correções de regressão manual. Além disso, se não fizermos algumas limpezas de formulários, o código se tornará ininteligível. Sei que isso está longe de ser o ideal, mas esse é um verdadeiro empreendimento empresarial que coloca comida na minha mesa e não é minha escolha.