DEV Community

Vinícius Bispo
Vinícius Bispo

Posted on

6

Extraindo Constantes de Números Mágicos

Olá, esse é o meu primeiro post da série refatoração, no qual vou mostrar o que estou aprendendo com o curso Refactoring do Refactoring Guru

O primeiro post vai ser sobre extrair constantes de números mágicos.

Imagine que você tem o seguinte cenário:

def potential_energy(mass, height)
  mass * height * 9.81
end
Enter fullscreen mode Exit fullscreen mode

Não sei se você aprendeu sobre energia potencial gravitacional na escola, mas concorda comigo que não está nada explícito o que representa 9.81?

Vamos refatorar seguindo o "Extraindo Constantes de Números Mágicos"

GRAVITATIONAL_CONSTANT = 9.81

def potential_energy(mass, height)
  mass * height * GRAVITATIONAL_CONSTANT 
end
Enter fullscreen mode Exit fullscreen mode

Mind Blowing

Uau! Agora sim! Agora ficou explícito que o valor de 9.81 é a constante gravitacional

É isso que diz o "Extraindo Constantes de Números Mágicos", ele diz que "Um número mágico é um valor numérico encontrado no código que não tem significado óbvio". Este 'anti-pattern' torna mais difícil entender o programa e refatorar o código"

Os benefícios dessa técnica são inúmeros, entre eles podemos destacar:

  • As constantes podem servir como uma documentação.
  • É muito fácil mudar o valor de uma constante do que buscar por esse número em todo o código, sem o risco de acidentalmente mudar o mesmo número usado para outro propósito.

É isso pessoal! Eu espero que esse artigo os ajude! E se sim, me deixe saber! Até a próxima!

AWS GenAI LIVE image

How is generative AI increasing efficiency?

Join AWS GenAI LIVE! to find out how gen AI is reshaping productivity, streamlining processes, and driving innovation.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay