Sim! Vamos falar de refatoração.

Maximiliano Alves
3 min readMar 31, 2016

Refatoração ainda é um dos assuntos que mais tenho que estudar, pelo simples fato de estar estudando MUITO testes de software, qualidade de software e TDD (Test Driven Development). Vou começar falando um pouco sobre o TDD.

Basicamente consiste em escrever o caso de testes antes mesmo de criar o código ou a lógica do código. O ciclo de TDD mais comum hoje é o RED¹ (escreve o teste) — GREEN² (Cria a lógica para que o teste passe) — REFACTOR³ (Melhoria do código), mas pode ser feito e ainda é utilizado somente os dois primeiros casos (RED — GREEN), o que, para mim, torna quase impossível manter uma qualidade no código.

Então, vamos falar deste terceiro caso REFACTOR (Refatoração). Como já estamos cansados de saber, refatoração é a ideia de recriar um código mais legível para facilitar a manutenção e o reuso daquele código.

Porém, quando iniciei os estudos fiquei com aquela pulga atrás da orelha:

  • Qual código devo refatorar?
  • Dentro do código, onde eu acho possíveis métodos, classes, códigos ou até comentários que posso refatorar?
  • Preciso testar ao refatorar? Preciso refatorar ao testar?

Então cheguei a seguinte conclusão.

Não importa qual o código que estás fazendo, por mais simples que ele seja, sempre precisamos refatorar, penso que é como escrever uma redação ou um e-mail. Usando o exemplo do e-mail, primeiro você abre um editor de texto e esboça o e-mail, depois você o revisa, pois sempre tem alguma frase, palavra ou pontuação que você tem que mudar, somente após isso você vai copiar aquele texto para o e-mail e enviar. Refatorar é isso. E sim, pense em refatorar todos os códigos que escrever.

Dentro do código, onde eu acho possíveis métodos, classes, códigos ou até comentários que posso refatorar?

Sempre que vejo um código eu procuro iniciar olhando o tamanho dos métodos, verifico se o nome do método está correto, o tamanho das classes e se ocorre hierarquia entre os nomes das classes e métodos para ter uma melhor legibilidade. Verifico possíveis pontos de troca de código, necessidade de looppings, códigos duplicados, variáveis auxiliares em métodos, simplificar as condicionais dos códigos. Por fim verifico os comentários e se necessário adiciono mais ou retiro alguns.

Preciso testar ao refatorar? Preciso refatorar ao testar?

Não é uma necessidade você ter que respeitar o clico de TDD por exemplo, mas na minha opinião, teste sempre. Não importa se é uma simples regra que calcula o IMC de uma pessoa, pode ser usando TDD, criando do primeiro o caso de teste, depois o método, depois refatora ou simplesmente cria o código, testa e refatora. Mas é muito importante os pontos de testar e refatorar estarem no projeto.

Conclusão

Concluo que não importa o tamanho do código nem a complexidade que tenha seu código, você sempre deve refatorar e, junto, testar afim de criar o código mais legível e reutilizável possível.

Por hoje é só.

Abraços.

Maximiliano Alves

Originally published at maxalves.com.br on March 31, 2016.

--

--

Maximiliano Alves

QA Lead, Software automation lover, musician and in love with automation for mobile projects.