terça-feira, 13 de abril de 2010

Boas Práticas: Utilização de Constantes

Cenário
É bem comum durante o desenvolvimento de uma aplicação, seja em Java ou não, precisarmos utilizar strings como chaves para mapas, ou então valores numéricos para identificar códigos de erro ou códigos de retorno de uma outra aplicação ou API, como por exemplo no código abaixo:
Map mapa = new HashMap();
mapa.put("nome", "Diego");


Problema
Porém, a utilização de strings ou valores numéricos diretamente dentro do código, de forma fixa, pode trazer diversos problemas posteriormente, durante a manutenção do sistema. Um exemplo poderia ser o seguinte: suponha que você tem que dar manutenção em um sistema que utiliza mapas (Map) para transportar os dados da camada de negócio para a camada de apresentação. Você vai até a classe de negócio responsável pela criação do mapa e altera o nome de uma das chaves que é usada no mapa, do mesmo modo que no exemplo mostrado acima. No entanto você esquece de fazer a mesma alteração na camada de interface. Resultado: a informação não será mais mostrada na tela, pois você está acessando uma chave do mapa que não possui mais nenhum valor associado.

Isso é um exemplo simples, agora imagine que, se ao invés de apenas ter que fazer a alteração em dois lugares, você precisasse fazer isso em todas as classes do sistema? Pronto, prato cheio para introdução de bugs no sistema.

Solução
Para evitar esse tipo de problema, procure sempre usar constantes para todas as strings e valores numéricos que você utiliza dentro de um sistema. Ainda melhor, procure criar uma classe específica para conter todas as constantes que você usa em sua aplicação. O Eclipse pode ajudá-lo a fazer isso, através da seguinte opção de menu: Source > Externalize Strings. Essa opção permite que você exporte todas as strings de uma classe ou até mesmo do projeto inteiro para uma outra classe.

Vantagens
A grande vantagem da utilização de uma classe para as constantes é que caso algum dia você precise alterar o valor de uma constante, você só precisará alterar apenas uma classe. Como conseqüência, o sistema terá maior qualidade, manutenabilidade, e estará menos suscetível a erros de programação desse tipo.

Obrigado e não esqueçam de comentar :-D

Um comentário:

  1. A utilização de boas práticas, em grande parte dos projetos, consome um tempo maior de desenvolvimento porém, em etapas de manutenção todo esse tempo gasto inicialmente será compensado. O uso de boas práticas é uma forma de se preparar para o futuro

    ResponderExcluir