Refactoring - fga-eps-mds/A-Disciplina-MDS-EPS GitHub Wiki

Qualities of Quality

Dívidas técnicas: https://www.youtube.com/watch?v=pqeJFYwnkjE


Refatoração

O que não é Refatoração

  • Encontrar e arrumar bugs enquanto faz o código, de maneira que essa ação é considerada apenas como melhoria de código.
  • Intensificar o tratamento de erros, que também é considerado apenas como melhoria da cobertura de código.
  • Código defensivo, de maneira que erros aplicação sejam raros.
  • Tornar o código mais testável.

Em resumo, melhoria de cobertura e tratamento de erros não é considerado como refatoração de código.

Quando a refatoração é necessária?

Para se encontrar um bug no código

Ao se adicionar uma nova funcionalidade

Durante a visão de código

Qualquer hora

De tempos em tempos o código precisa ser revisado para refatoração, de forma que fique mais limpo.

Para quê utilizar a refatoração?

  • Eliminação de código duplicado, fazendo com que a repetição de código seja nivelada ao mínimo possível.
  • Elimanação de código morto, excluindo linhas de código que não acrescentam nada à aplicação.
  • Melhorar a lógica utilizada no sistema, de maneira que o design seja mais claro para programadores de fora.
  • Melhorar o uso da linguagem, otimizando o desempenho.

Bad Smells in code (mal cheiro de código)

Bad smell é uma situação na qual a estrutura do programa pode ser melhorada com refatoração, como por exemplo: Duplicação de código e classe ou métodos longos.

Identificando mal cheiro de código - métricas de código fonte

  • Long Method/ God Method:
  • Feature Envy:
  • Divergent Change:
  • Shotgun Surgery:
  • Refused Bequest:
  • Comments:

Exemplo de Refatoração

A refatoração deve resultar em um código mais limpo, que seja legível, claro e com o mínimo de repetições. Na imagem abaixo podemos fazer uma analogia a refatoração:

Ferramentas das métricas

Relação entre Testes e Refatoração

Refatoração e Testes

Refatoração e TDD

Tipos de Refatoração

Treinamento

  • Incluir descrição do treinamento/DOJO - passo a passo - etapas
  • Registrar os detalhes da dinâmica
  • Infraestrutura Necessária para a dinâmica
  • Código referência no projeto da disciplina (00-Disciplina)
  • Treinamento em, pelo menos 2 linguagens

Referências

Engenharia de software. Refactoring.

Ian Sommerville. Engenharia de Software, 9ª Edição. Pearson Education, 2011.