refatoração
Fabrício Sousa
Refatoração (Substantivo)
Uma alteração feita na estrutura interna do software para torná-lo mais fácil de ser entendido e menos custoso de ser modificada sem alterar seu comportamento observável 2
Refatorar (verbo)
Reestruturar software aplicando uma série de refatorações sem alterar seu comportamento observável 3
A refatoração é apenas limpeza de código?
4
Resposta...
De certo modo sim..mas vai muita além disso
Técnica para limpar código de uma maneira mais eficiente e controlada
5
Objetivo
1º Tornar o software mais fácil de entender e modificar 2º Não altera o comportamento observável do software
Executa a mesma função de antes
6
Outras Definições:
• É o processo de mudar um software de forma que o comportamento externo do código não seja alterado mesmo que sua estrutura interna seja incrementada.
• É o processo de reorganizar o projeto de um sistema para torná-lo mais flexível e/ou reusável.
7
Os dois chapéus
Adicionar funcionalidades e refatorar
Hora assumimos um chapéu , hora assumimos o outro Nova Funcionalidade
Refatorar
8
Exemplo 1
Classe A
Classe B
x1 x2 v2
x1 x2 v1
M1(p1, p2)
M2( )
M3(p4)
M4(p5, p6)
M1(p1, p2)
M3(p4)
M5(p3)
Similaridades
: x1, x2
M1, M3
Classe S x1 x2
M1(p1, p2)
M3(p4)
Classe A
Classe B
v2
v1
M2( )
M4(p5, p6)
M5(p3)
9
Refatorar X Reescrever
Refatorar:
Não altera a funcionalidade ou o conteúdo do sistema • Reescrever:
• Altera seu conteúdo ou funcionalidade
10
Vantagens
• Eficiência
• Manutenibilidade:
É mais fácil manter um sistema quando o código está “limpo”
11
Vantagens
Eficiência
Exemplo:
Seja a expressão: (x-1) * (x+1) = x^2 -1
• Qual é mais eficiente?
•
Lado esquerdo Por que?
•
Usa operações mais simples apesar de possuir mais termos e operadores
12
Exemplo 2
A
Acoplamento por conteúdo
B
D
C
E
Dados