A refatoração é uma forma disciplinada de reestruturar o código quando pequenas mudanças são feitas nele para melhorar
o design. Um aspecto importante de uma refatoração é que ela melhora o design sem mudar o comportamento do design; uma
refatoração não adiciona nem remove funcionalidade.
A refatoração permite evoluir o código lentamente no tempo, de forma que se tenha uma abordagem iterativa e incremental
para a implementação.
Existem três tipos de refatoração:
-
Refatoração de código. Normalmente conhecida como refatoração, é a refatoração do código fonte programado. Exemplos
de refatoração de código: Re-nomear Métodos, Encapsular Campos, Extrair Classes, Introduzir Afirmações e
Especializar Métodos.
-
Refatoração de base de dados. Uma refatoração de base de dados é uma simples mudança no esquema da base de dados
que melhore seu design mantendo suas semânticas comportamental e informativa. Exemplos de refatoração de base de
dados: Renomear Colunas, Dividir Tabelas, Mover um Método para a Base de Dados, Substituir LOB por Tabela, Associar
Restrições as Colunas e Usar Fontes Oficiais de Dados.
-
Refatoração de interface de usuário (UI). Uma refatoração de interface de usuário é uma simples mudança na
interface mantendo sua semântica. Exemplos de r-fatoração de interface de usuário: Alinhar Campos de Entrada,
Aplicar Tamanho Comum aos Botões, Aplicar uma Fonte Comum, Indicar Formato, Reescrever o Texto em Voz Ativa e
Aumentar o Contraste das Cores.
Martin Fowler identifica quatro principais razões para refatorar:
-
A refatoração melhora o design do software
-
A refatoração torna o software mais fácil de manter.
-
A refatoração lhe ajuda a encontrar defeitos
-
A refatoração lhe ajuda a programar mais rápido
A refatoração pode melhorar o design do código existente, mas não substitui a consideração do design antes da escrita
do código. Ao contrário, a refatoração muda o papel de design, permitindo que o trabalho estritamente de design seja
mais abstrato. Decisões muito táticas e de pequena escala, podem ser tomadas durante a implementação da solução com a
confiança de que a refatoração irá garantir uma implementação de qualidade, neste nível. A execução do design da
solução, antes da implementação, será mais leve e focada em grandes fatores que irão direcionar a implementação.
Existe um benefício adicional da refatoração: ela muda a forma que um desenvolvedor pensa sobre a implementação quando
não há refatoração. A tarefa básica da implementação de uma solução torna-se unicamente a obtenção do sucesso da
execução dos testes de desenvolvedor na solução da forma mais simples possível. Então, o design da solução pode ser
examinado e refatorado separadamente. Mesmo que essas duas coisas -- a implementação da solução e, em seguida, a
melhoria -- sejam mínimas, pode ser interessante para um desenvolvedor criar o código que faça com que o teste passe e
melhorá-lo depois.
Fontes de informação sugeridas:
|