Qual o melhor momento para refatorar ?
Já sabemos que refatorar é muito importante, mas sempre ficamos naquela dúvida de qual o melhor momento para investirmos tempo em uma refatoração?
Nesse artigo vou listar os momentos que pode ser necessário (e conveniente) fazer uma refatoração.
Refatoração preparatória
Esse tipo de refatoração ocorre quando o código está tão caótico que é necessário refatorar ele antes de começar uma tarefa. Se for uma refatoração preparatória mais complexa, o ideal é sinalizar que será necessário fazer ela e quanto tempo isso levará além do estimado para a tarefa/demanda.
Refatoração para compreensão
Essa daqui ocorre muitas vezes quando estamos no meio da tarefa e vemos um código que tá funcionando mas que achamos ele meio ??? , geralmente são ajustes simples como um extração de um método/classe, mudar o nome dos métodos para um nome mais claro ou até mesmo mudar algum código mais complexo para alguma feature nativa da linguagem ou de alguma biblioteca já usada no projeto que torne aquele código mais simples e até talvez mais performático.
Refatoração para coleta de lixo
Sabe quando a IDE/lint fica sinalizando que alguma variável / método /imports não está sendo utilizado em lugar nenhum? É bom separar um momento para analisar se realmente faz sentido apagar eles e caso veja algum durante alguma task que já está fazendo (tipo nas mesmas classes que alterou) já remove também, se for mexer no projeto todo o ideal é sinalizar que isso será feito e até criar uma tarefa para isso, pois demandará mais tempo e separando uma branch só pra isso até facilita na hora de revisarem essa refatoração.
Refatoração no code review
Esse é o melhor momento para refatorar mas como assim Kamila? Nos cenários anteriores o código já estava ali incorporado no projeto e muito provavelmente já está rodando em produção (e funcionando esperamos né), se torna bem mais oneroso e arriscado remover um código ruim nesse momento, já no code review o código está indo para ambiente produtivo, é o momento em que você pode pontuar ajustes nos códigos nos outros e vice-versa sem ter o receio de mexer em um código já produtivo e que já está acoplado com outras features.
Além disso, refatorando no code review você ajuda para que a pessoa aprenda mais ainda com aquelas sugestões, conhecendo novas features e melhores práticas de desenvolvimento
Refatoração de longa duração
Esse aqui é o pior momento e pior tipo de refatoração quando chegamos nesse nível de refatoração geralmente é porque o código ficou tão caótico que é necessário reescrever o sistema todo (ou quase todo) , precisamos criar várias histórias pra isso, priorizar no roadmap, é um processo bem oneroso e arriscado, faça os outros tipos de refatoração para não chegar a precisar desse
Quer aprender mais sobre refatoração? Esses dois livros me ensinaram muito sobre esse tema: