¿Qué es un número mágico?

En términos de programación, se le llama «número mágico» a la mala practica de utilizar números directamente en el código. Esto si bien no tiene ninguna consecuencia en el desempeño del código, si tiene malas consecuencias en su mantenimiento.

Citando el ejemplo de la wikipedia en pseudo-código:

for i from 1 to 52
    j := i + randomInt(53 - i) - 1
    a.swapEntries(i, j)

Vemos que esto no nos dice absolutamente nada, el hecho de utilizar 52 y 53 en el código hará que solamente el autor lo entienda.

constant int deckSize := 52
for i from 1 to deckSize
    j := i + randomInt(deckSize + 1 - i) - 1
    a.swapEntries(i, j)

En cambio al contener el número estático en una variable, fácilmente nos damos cuenta que se trata de un juego de cartas por el simple nombre de la variable, donde 52 es el número total de ellas.

Evita esta práctica como si se tratara de la peste.

Enlace: Magic number