Skip to content
wermesonsl edited this page Aug 25, 2022 · 22 revisions

Projeto voltado para o aprendizado de conteúdos relacionados a refatoração

O que é Refatoração?

  • É um conjunto de técnicas reunidas para reescrever o código fonte, buscando agilidade e legibilidade do mesmo, facilitando a adição de novas features. Pode-se dizer que a Refatoração é um conjunto de pequenos ajustes, que facilitam a manutenção do código, como localizar a origem de um erro, otimizando o tempo gasto em sua correção.

  • É uma mudança no código que não altera o comportamento observável do sistema.


Por quê Refatorar?

  • O intuito de utilizarmos a refatoração consiste na melhora do entendimento do código para outros desenvolvedores. Assim, caso seja necessário realizar alguma manutenção do código, outro desenvolvedor conseguirá ler o código com mais clareza, otimizando o tempo gasto na resolução do problema.

Quando Refatorar?

Quando seu código estiver com "cheirinho" de problema ou de complicação.

Exemplos:

  • Repetição de Código;
  • Funções Extremamente Longas;
  • Quando alterações em classes e funções implicam em modificações em outros lugares;
  • Excesso de Comentários;
  • Código não utilizado;
  • Quantidade grande de Parâmetros das Funções.

Quanto mais tempo se leva para refatorar, pior fica a execução de uma eventual manutenção.

Metáfora da cozinha: se sua cozinha estiver suja e bagunçada, mesmo sendo possível cozinhar, chegará um ponto que será inviável, necessitando organizar os alimentos e a louça antes de cozinhar novamente. O mesmo acontece com o código, se ele ficar bagunçado, a tendência é que ele piore , acumulando complexidade, resultando em uma situação que nem mesmo o próprio desenvolvedor saberá onde inserir uma função nova ou corrigir algum bug que por ventura possa aparecer.


Como Refatorar?

Para que a refatoração ocorra bem são necessários:

  • Planejar alterações atômicas, ou seja, cada refatoração é um ajuste sobre algo específico, fazendo uma mudança de menor escopo. Isso pode ser bastante útil caso um ajuste não funcione corretamente, tendo de ser descartado, enquanto os demais ajustes continuam sendo reaproveitáveis.
  • O código deve estar (e continuar) limpo, seguindo práticas de Clean Code, onde o código naturalmente é de fácil compreensão e sem funções repetidas ou desnecessárias.
  • Não deve haver desenvolvimento de novas features. É interessante separar estes processos, visto que cada um tem uma finalidade diferente. Novas features adicionam ou alteram funções e comportamentos do sistema, enquanto a refatoração é focada na legibilidade e manutenção do código-fonte.
  • Toda refatoração deve passar nos testes.

Técnicas de Refatoração

Métodos de Codificação: A maior parte das refatorações são dedicadas à codificação mais apropriada de métodos . Em sua maioria, métodos excessivamente longos são a raiz do problema. Os caprichos nesses métodos mascaram a lógica de execução, tornando-os muito difíceis de entender para, então, aplicar mudanças no código-fonte.