Nombre magique

Définition, exemples et bonnes pratiques

À retenir

  • C'est une signature d'identification placée au début d'un fichier.
  • Il permet de reconnaître un format même si l'extension du fichier est absente ou erronée.
  • En programmation, c'est une valeur fixe dont la signification n'est pas explicitée par un nom de variable.

Un nombre magique est une valeur numérique ou une courte suite de caractères placée au début d'un fichier ou d'un bloc de données pour servir de signature. Cela permet à l'ordinateur de reconnaître instantanément le type de contenu (image, document, programme) sans se fier uniquement à l'extension du fichier (comme .jpg ou .pdf).

Étymologie

Traduction de l'anglais magic number. Ce terme est apparu dans les premiers systèmes d'exploitation, notamment Unix, pour désigner des constantes arbitraires qui permettaient d'identifier des formats de fichiers binaires de manière quasi instantanée, d'où l'aspect « magique » de l'identification.

Exemples d'usage

  • Les fichiers compressés de type ZIP commencent par les lettres PK (les initiales de Phil Katz, leur créateur).
  • Les scripts informatiques commencent souvent par #! (appelé shebang) pour indiquer au système quel interpréteur utiliser.
  • En programmation, utiliser le chiffre 86400 directement dans le code pour représenter le nombre de secondes dans une journée est considéré comme un nombre magique.

Cas d'usage

Ce concept intervient principalement dans l'identification des formats de fichiers par le système d'exploitation et dans l'analyse des flux de données réseau (protocoles). En développement logiciel, il désigne aussi des constantes numériques insérées sans explication dans le code source.

Bonnes pratiques

En tant que développeur, il est fortement déconseillé de laisser des nombres magiques « bruts » dans votre code. À la place de if (status == 3), il vaut mieux définir une constante nommée comme STATUS_COMPLETED = 3. Cela rend le programme beaucoup plus facile à lire et à maintenir.

Synonymes

signature de fichier constante magique identifiant de format

Antonymes

constante nommée variable explicite

Conseil

Pour bien comprendre, imaginez les nombres magiques comme les « étiquettes » invisibles d'un fichier. Si vous apprenez à programmer, dès que vous tapez un chiffre qui n'est pas 0 ou 1, demandez-vous s'il ne devrait pas porter un nom clair pour être compris par tous.

Questions fréquentes

Pourquoi dit-on que c'est une mauvaise pratique en programmation ?

Parce qu'un chiffre isolé (ex: 42) n'explique pas son rôle. Si un autre développeur lit le code, il ne saura pas à quoi il correspond sans une recherche fastidieuse.

Est-ce que tous les fichiers en ont un ?

La grande majorité des formats standards en possèdent un, mais ce n'est pas une obligation technique absolue pour les fichiers texte brut par exemple.