Back-End

5 jan, 2009

Refatoração em código Java na prática

Publicidade

Salve, Salve! Leitores iMasters! Fiquei um tempinho ausente e quero aproveitar o momento para pedir desculpas. Porém, foi por um bom motivo, estava em processo de TCC.

Para o retorno, vou trazer, na prática, a aplicação da técnica de refatoração (refactoring) em códigos Java. Para aqueles que não conhecem a técnica de refactoring, tem uma coluna no meu blog sobre a definição e suas vantagens que podem ser vistas nos links a seguir. Porém darei uma breve descrição da técnica para dar um sabor ao artigo.

Refatoração

Vantagens/Desvantagens e ferramentas

Breve descrição

Refactoring é o processo de alterar um Software sem mudar seu comportamento. Um Software refatorado deve executar da mesma forma que antes da aplicação da técnica. A vantagem de aplicar essa técnica dentro do ambiente de produção é que ela promove um desenvolvimento rápido e facilita na manutenção do Software.

Nesse artigo vou apresentar uma técnica de refatoração denominada Fowler “substituir número literal por constantes simbólicas“, apresentarei a motivação do uso da técnica, a mecânica para executar e um exemplo em Java.

Técnica: SUBSTITUIR NÚMERO LITERAL POR CONSTANTES SIMBÓLICAS

O entendimento de número literais pode ser claro para as pessoas que o codificam, porém seriam mais claros se fosse substituído por constantes simbólicas com um nome intuitivo e auto-explicativo. Esses números simplesmente largados no código dificultam muito a leitura e entendimento desse, dificultando no processo de manutenção e diminuindo a velocidade no desenvolvimento do Software .

Motivação

Números literais são um dos males mais antigos da computação. São números com valores especiais no sistema e que normalmente não são óbvios. É muito oneroso quando se quer utilizar um mesmo número lógico em mais de um lugar. Se houver a possibilidade de os números mudarem, tem-se um trabalho enorme em mudar todas as ocorrências, levando à dificuldade no processo de manutenção do Software.

Mecânica

Para execução dessa refatoração basta seguir os passos a seguir:

a) declarar uma constante e atribuir a ela o valor do número literal;

b) encontrar onde o número aparece;

c) ver se a mudança pode ser feita; caso positivo, alterar o número pela constante;

d) compilar;

e) assim que os números literais forem substituídos, testar.

Exemplo

No código a seguir temos um código não refatorado que apresenta um número literal 9.81. Como pode ser visto na linha 2.

1. double energiaPotencial(double massa, double altura){
2. return massa * 9.81 * altura;
3. }

No próximo código refatorado foi criada uma constante para representar o número literal e a nomeação auto-explicativa, conforme pode ser visto na linha 1. Agora o processo de manutenção se torna mais fácil e conseqüentemente mais rápido.

1. static final double CONSTANTE_GRAVITACIONAL = 9.81;
2. double energiaPotencial(double massa, double altura){
3. return massa * CONSTANTE_GRAVITACIONAL * altura;
4.}

Conclusão

Observe como a técnica de refatoração promove o código limpo e torna a vida do desenvolvedor mais fácil. Não posso mentir que quando iniciei no mundo da programação tinha o hábito de criar N números literais e o processo de manutenção era muito árduo. Analisem os códigos acima e percebam os efeitos causado pela refatoração. É importante salientar que o processo de manutenção corresponde hoje a mais que 60% dos custos de um projeto.

Espero que tenham gostado do artigo! Um abraço, e até o próximo!

Recomendações

Livro sobre refactoring

?http://www.refactoring.com