Convention de nommage

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Une convention de nommage dans la programmation informatique est un ensemble de règles destinées à choisir les identifiants logiciels (noms des éléments du programme) dans le code source et la documentation.

Principes[modifier | modifier le code]

Les raisons pour lesquelles on utilise une convention de nommage (par opposition à l'autorisation accordée aux programmeurs de choisir n'importe quelle séquence de caractères) sont les suivantes :

  • rendre le code source plus facile à lire et à comprendre avec moins d'efforts ;
  • améliorer l'apparence du code source (par exemple, en interdisant les noms trop longs ou les abréviations) ;

Le choix de conventions de nommage peut prêter à d'énormes controverses, les partisans de chaque convention tenant la leur pour la meilleure, les autres étant inférieures.

Avantages[modifier | modifier le code]

L'utilisation d'une convention de nommage peut procurer une sécurité beaucoup plus grande dans l'utilisation des programmes informatiques, du fait que le code source doit respecter des règles précises. Il sera ainsi plus facile d'atteindre des niveaux EAL plus élevés, par exemple dans le logiciel, lorsqu'il s'agit de vérifier le code source.

Les bénéfices détaillés peuvent se décliner de la façon suivante :

  • fournir une information supplémentaire (i.e. métadonnées) sur l'utilisation d'un identifiant ;
  • aider à formaliser les attentes et promouvoir la cohérence dans une équipe de développement ;
  • permettre l'utilisation de maintenance automatisée ou de recherche, et remplacer les outils avec des risques minimum d'erreur ;
  • améliorer la clarté dans les cas d'ambiguïtés ;
  • améliorer l'apparence esthétique et professionnelle du produit (par exemple, en interdisant les noms trop longs, comiques ou "cute", ou les abréviations) ;
  • aider à éviter les "doublons" qui peuvent se produire quand les logiciels de différentes organisations interopèrent entre eux (voir aussi : espace de noms).

Difficultés[modifier | modifier le code]

Le choix des conventions de nommage (et leur domaine d'application) fait souvent l'objet de débats. De plus, même avec des conventions en place connues et bien définies, il peut arriver que des organisations ne parviennent pas à les mettre en œuvre d'une façon cohérente, ce qui peut causer de l'incohérence et de la confusion.

Ces défis peuvent être exacerbés si les règles en interne de la convention de nommage sont incohérentes, arbitraires, difficiles à mémoriser ou, au contraire, plus fastidieuses que bénéfiques.

Éléments d'une convention de nommage[modifier | modifier le code]

Longueur des identifiants[modifier | modifier le code]

Casse des lettres et nombres[modifier | modifier le code]

Identifiants à mots multiples[modifier | modifier le code]

Métadonnées et conventions hybrides[modifier | modifier le code]

Notation hongroise[modifier | modifier le code]

Notation positionnelle[modifier | modifier le code]

Schéma de mots composite (OF Language)[modifier | modifier le code]

L'un des systèmes de convention publié depuis le plus longtemps était "OF Language" d'IBM, documenté dans les années 1980 dans le manuel IMS (Information Management System). Il détaillait le schéma de mots PRIME-MODIFIER-CLASS qui consistait en noms comme "CUST-ACT-NO" pour indiquer "customer account number".

  • PRIME : ces mots devaient indiquer les "entités" d'intérêt majeur dans un système.
  • MODIFIER : ces mots étaient utilisés pour des raffinements, une qualification, et une lisibilité supplémentaires.
  • CLASS : ces mots étaient dans l'idéal une liste très courte de types de données correspondant à une application particulière. Les mots CLASS communs pouvaient être :
    • NO (number, nombre),
    • ID (identifier, identifiant),
    • TXT (text, texte),
    • AMT (amount, montant),
    • QTY (quantité),
    • FL (flag),
    • CD (code),
    • etc.

En pratique, les mots CLASS disponibles formaient une liste de moins de deux douzaines de termes. Les mots CLASS, positionnés sur la droite (suffixe), avaient pratiquement le même objectif que les préfixes de la notation hongroise.

L'objectif des mots CLASS, en plus de la cohérence, était de spécifier au programmeur le type de données d'un champ particulier. Avant l'acceptation des champs Booléens (deux valeurs seulement), FL (flag) indiquait un champ avec seulement deux valeurs possibles.

Exemples[modifier | modifier le code]

Norme ISO/CEI 11179 de registre de métadonnées[modifier | modifier le code]

la norme ISO/CEI 11179-5 sur les registres de métadonnées contient des conventions de nommage pour les concepts des éléments (noms d'éléments), les domaines conceptuels, et les domaines de valeur.

Cette norme concerne tous les langages de balisage (HTML, XML,...), mais aussi, à travers les éléments de métadonnées, les données qui peuvent être utilisées par d'autres types de langages.

Langage Java[modifier | modifier le code]

En Java, dès l'origine de la création de ce langage, des conventions ont établi des exigences strictes sur les classes et les variables à capitaliser différemment. Ainsi, pour un programmeur Java, widget.expand() et Widget.expand() impliquent des comportements significativement différents, même sans connaissance préalable de la classe Widget et malgré le fait que le compilateur n'oblige à aucune règle.

En effet, par convention, widget est considéré comme une variable. L'usage courant, laisse penser que widget est une instance de la classe Widget. Par contre, Widget.expand() est interprété par le programmeur Java comme "la méthode statique expand() de la classe Widget".

Langage C[modifier | modifier le code]

Les identifiants qui représentent des macros en C et C++ sont, par convention, écrits en utilisant seulement des lettres en capitales. Ceci est relatif à la convention selon laquelle, dans beaucoup de langages de programmation, on doit utiliser des métadonnées en capitales pour les constantes.

Voir aussi[modifier | modifier le code]