Sobre os números mágicos e a necessidade de refatoração

by SrECosta janeiro 09, 2008 05:45

Olá.

     Direto ao ponto: um número mágico é todo número literal que possui um significado não esclarecido ou não documentado no código. É aquele número que você encontra em fórmulas, cálculos, instruções condicionais e métodos e que não é possível inferir o seu significado.

     Imagine encontrar um trecho de código assim:
     imposto = valorMovimentado * 0.38

     O que significa esse 0.38 na expressão? Você poderia chutar que seria a CPMF mas seria melhor que o código estivesse assim:
     constanteCPMF = 0.38
     imposto = valorMovimentado * constanteCPMF

     Vê a diferença? Ao invés de utilizar números diretamente em suas expressões é mais saudável criar constantes para representá-los e utilizá-las nas expressões. O código fica mais legível e mais prático para sofrer manutenções.

     Além disso, imagine se o valor 0.38 fosse utilizado em 30 lugares diferentes? Caso o valor mudasse para 0.35 seria necessário alterar todos os 30 lugares. Porém, caso tivesse sido utilizado uma constante, bastaria alterar a constante num único lugar e todos os outros 30 estariam automaticamente adequados. Muito melhor, certo?

     Martin Fowler, no livro "Refatoração: Aperfeiçoando o Projeto de Código Existente", chama esse padrão de "Substituir número mágico por constante simbólica". Este livro é fonte muito recomendável para o aprendizado de padrões de refatoração como o que mostrei acima. É um excelente guia de consulta também.

     O autor mantém um site na internet (em inglês) sobre refactoring que é referência para o assunto: site Refactoring.

     Espero que seja útil.

Eduardo.

4.0 ponto(s). Avaliado por 1 pessoas

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , ,

Design e Boas Práticas

Meu artigo sobre refactoring no site MrBool

by SrECosta janeiro 07, 2008 05:10

Olá.

A DevMedia, editora responsável pelas revistas .NET Magazine, Java Magazine, SQL Magazine e Web Mobile, traduziu para o inglês alguns dos artigos publicados para encher de conteúdo o site MrBool.

O site MrBool é uma iniciativa da DevMedia para atrair audiência inglesa. É interessante, dado o volume de artigos que eles possuem. Espero que dê certo.

No mais, o meu artigo sobre refatoração, publicado na edição 38 da .NET Magazine, também está disponível no MrBool na íntegra: Refactoring in the Visual Studio 2005.

Espero que seja útil.

Eduardo.

3.0 ponto(s). Avaliado por 1 pessoas

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

Desenvolvimento e Codificação | Treinamento e Aprendizado

Powered by BlogEngine.NET 1.4.5.0
Theme by Mads Kristensen | Modified by Mooglegiant

Eduardo Costa

Desenvolvedor de software, empreendedor, marido e criador de quatro gatos em São Paulo, SP.
Sobre o Mutamblog. Se gostou do conteúdo, assine nosso feed. ;)

Anúncios

Comentários Recentes

Comment RSS