quinta-feira, 2 de julho de 2009

Números mágicos, o web.config e as appSettings!

Esta semana falava tangencialmente a propósito dos números mágicos numa sessão de formação e, por isso,
resolvi escrever um pouco sobre este assunto e uma possível solução global para o caso das ASP.NET.

O termo "magic numbers" no contexto da programação de computadores pode ter várias interpretações (http://en.wikipedia.org/wiki/Magic_number_%28programming%29), mas interessa-me particularmente aquela que diz respeito à utilização de valores numéricos no decorrer do código fonte de um programa.

As boas práticas de programação aconselham a definição e utilização, para este efeito, de constantes. No entanto, vê-se muitas vezes a utilização de valores numéricos directamente no código. A utilização de valores numéricos directamente no código tornam obscura a intenção de escolha do programador e favorecem o aparecimento de erros subtis e dificultam adaptações futuras do programa. A utilização de constantes "magic numbers" facilitam, portanto, a leitura, compreensão e manutenção de um programa.

No caso de um sistema de informação desenvolvido em ASP.NET muitas vezes pretende-se reutilizar uma constante em várias partes do sistema. O ficheiro web.config permite a definição de constantes globais através da secção .

Exemplo de uma variável definida no web.config:

<configuration>
<configSections>
...
<appSettings>
<!--Número de dias durante os quais o registo é
válido -->
<add key="numDiasRegistoValido" value="2" />
</appSettings>
...

No código para aceder a esta variável, basta fazer o seguinte (em C#):



int numDias = default(int);
if(!int.TryParse(System.Configuration.ConfigurationSettings.AppSettings["numDiasRegistoValido"], out numDias)){

//Código que precisa da variável numDias...
//...
}



No exemplo, tenta-se ler o valor da variável, se formos bem sucedidos, numDias assume o valor 2, caso contrário mantém-se o valor default do tipo da variável (no caso int).

Sem comentários: