Refatoração - Parte II
Engenharia de SW January 10th, 2008Dando continuidade ao post anterior, veremos: bad smells, vantagens/desvantagens da utilização de refatoração ..
Bad Smells
Kent Beck, um dos criadores da Programação Extrema (Extreme Programming - XP), afirma que refatoração deve ser utilizada quando o “código cheira mal” (do inglês “bad smells in code”).
Definido por Martin Fowler e Kent Beck, o termo “bad smell” (maus cheiros) se refere às características encontradas nas estruturas de códigos que devem ser refatorados.
Os “bad-smells” que podem ser encontrado no livro do Martin Fowler (2004) são:
* Código Duplicado;
* Método Longo;
* Classes Grandes;
* Lista de Parâmetros Longa;
* Alteração Divergente;
* Cirurgia com Rifle
* Grupos de Dados;
* Inveja dos Dados;
* Obsessão Primitiva;
* Comandos Switch;
* Hierarquias Paralelas de Herança;
* Classe Ociosa;
* Generalidade Especulativa;
* Campo Temporário;
* Cadeias de Mensagens;
* Intermediário;
* Intimidade Inadequada;
* Classes Alternativas com Interfaces Diferentes;
* Biblioteca de Classes Incompleta
* Classes de Dados;
* Herança Recusada;
* Comentários.
(Maiores detalhes sobre cada termo no livro )
Vantagens
A refatoração detém inúmeras vantagens, quando aplicada corretamente. Dentre alguns propósitos vantajosos, apresentados por Fowler, encontram-se:
- redução de código duplicado;
- aumenta a simplicidade do código;
- melhora o desempenho;
- aumenta a legibilidade do código;
- melhora o projeto de software.
Desvantagens
Martin Fowler dedica uma seção de seu livro para apresentar os problemas levantados quando fazemos refatoração.
“Quando você aprende uma técnica nova que aumenta bastante sua produtividade, é duro ver quando ela não se aplica. Normalmente você a aprende dentro de um contexto específico, em apenas um simples projeto. É difícil ver o que faz a técnica ser menos efetiva, até mesmo prejudicial” (FOWLER, 2004).
Aparentemente, o assunto que diz respeito a refatoração somente apresenta vantagens em sua utilização, mas à medida que o assunto segue se difundindo pela comunidade, desvantagens aparecem.
É difícil apontar limitações sobre a utilização de refatoração quando suas técnicas são aplicadas em sistemas de software. As desvantagens conhecidas foram encontradas a partir de experimentos e, é através da experimentação que se espera, cada vez mais, que novas desvantagens sejam encontradas para que se possa buscar soluções, aperfeiçoá-las e saber quando não se deve aplicá-las.
Dentre as desvantagens apresentadas por Martin Fowler encontram-se:
- Banco de Dados;
- Alterando interfaces.
Mesmo apresentando limitações, a utilização da refatoração não é invalidada, até mesmo porque as vantagens obtidas são extremamente válidas.
No próximo post, mostrarei como aplicar algumas técnicas de refatoração. Aguardem…
January 10th, 2008 at 6:37 pm
is very good! your post Alberto!!
hehe!
congratulations hehhe
Mass to aproveitando e aprendendo ja que ainda nao li sobre para fazer meu pre-projeto tcc!! show seu blog cara
January 12th, 2008 at 6:32 pm
muito legal esse post… tá de parabens mesmo