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.
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