Convention de nommage informatique

triskel pensees

En débutant dans le développement de sites web, d’applications ou de bases de données, nous nous demandons souvent comment nommer les choses. Voici quelques pistes pour vous aider, vous inspirer et minimiser les risques d’erreurs.

Une convention de nommage dans la programmation informatique est un ensemble de règles destinées à choisir les identifiants (noms des éléments) dans le code source et la documentation. Pour mieux comprendre les avantages et les difficultés de ceci, visitez l’article complet de wikipedia.

Pourquoi suivre une convention de nommage ?

humour homme machine

D’abord parce qu’une machine, un système informatique, un système de fichiers n’est pas du tout humain. Réduit à sa plus petite échelle, c’est de l’électricité qui oscille entre 0 et 5 volts à un rythme effréné et l’on souhaite en fin de compte que le résultat ait un aspect que nous pouvons comprendre. Entre les deux, il y a souvent une machine, un OS, un fichier et une application qui pour finir s’affiche sur un écran.

Il faut donc séparer le résultat que l’on voit et la façon dont on y parvient. Séparer l’aspect humain de l’aspect technique. Cet article traite du second.

Nom des fichiers et des dossiers

Supposons que nous venions de réaliser un logo qui ne servira que durant l’été et qu’il faille l’enregistrer. Notre esprit nous suggère de le nommer:

Logo Haute Résolution, d’été 2018.jpg

Ce nom ne convient pas, même si localement sur votre ordinateur tout ira bien. C’est dans votre mémoire, dans les applications et sur internet que ça va coincer.

  1. Il contient des majuscules – Sur internet, une majuscule n’est pas équivalent à une minuscule. Windows et MacOS est très tolérant, alors qu’un serveur Web ne l’est pas du tout.
    Ce qui signifie que si vous devez l’écrire dans du code, vous devrez vous souvenir de la syntaxe exacte.
    Si vous n’en utilisez pas, ce sera moins joli à lire pour un humain, mais vous allez bien mieux vous en rappeler.
  2. Il contient des accents – Sur internet, un accent doit être encodé (remplacé par un code) et ce code n’est pas identique selon la plateforme (Windows ISO 8859-1, MacOS Roman).
    Ne pas utiliser d’accent vous assure une compatibilité totale entre toutes les plateformes.
  3. Il contient des signes spéciaux – L’apostrophe et la ponctuation sont des signes spéciaux. Certains signes ont une signification particulière ( ‘  » , ; ? = # / : < > ) servent tous à quelque chose de particulier en programmation ou sur internet.
    Ne pas utiliser de signes, évite des effets indésirables et ne nécessite pas de les encoder.
    Quatre signes sont autorisés _ (underscore) – (tirait) et les parenthèses. Il est toutefois recommandé de n’en utiliser qu’un seul, l’underscore. Les autres pouvant être interprétés comme des opérations arithmétiques.
  4. Il contient des espaces – Sur internet, lors de l’accès à un fichier au sein d’un URI (URL) les espaces ne sont pas autorisés. Il faudra donc remplacer l’espace par un code (%20).
    Ne pas utiliser d’espaces, vous évite de devoir encoder le nom du fichier. Utilisez un _ (underscore) à la place.
  5. Il contient une date – Si une année plus tard vous changez de logo, vous allez probablement refaire un nouveau fichier et le nommer « …decembre_2019.jpg » mais ensuite il vous faudra penser à mettre à jour toutes les applications, toutes vos pages web ainsi que tous les sites liés qui utilisaient votre logo, afin de les informer que le logo à changé et qu’il faut se lier au nouveau. C’est un travail titanesque, voire impossible.
    A la place, archivez l’ancien fichier en le nommant avec une date, mais gardez toujours le même nom pour celui qui servira de référence.

Il convient donc de le nommer :

logo_haute_resolution.jpg

Pour un dossier, utilisez les mêmes règles, pour les mêmes raisons.

Conclusion

Pour nommer un fichier, utilisez les lettres de a à z, en minuscule ainsi que les chiffres de 0 à 9.

Pour séparer les mots, n’utilisez pas d’espace, utilisez l’underscore _ à la place.

Évitez tout autre signe ou ponctuation.

Bases de données, Tables et Rubriques

Imaginons que nous ayons à créer une base de données contenant les logos de nos clients. Elle contiendra deux tables.

Une base de données est un fichier, les 5 règles précédentes s’imposent. Nous allons donc la nommer:

images_entreprises

Pourquoi pas logos_clients ?

Notre projet actuel se limite peut-être aux logos de nos clients, mais s’il fonctionne bien il pourrait évoluer facilement et permettre de stocker des photos et des logos, pour toutes les entreprises partenaires, clients et fournisseurs.

Nommons à présent nos deux tables, les mêmes règles de nommage s’appliquent:

  • Entreprises
  • Images

Il convient de créer des tables selon leur nature et de les nommer afin de pouvoir les faire évoluer facilement.

Un logo est une image d’un certain type, tout comme une photo. Il sera facile de les distinguer par une rubrique.

Un client et un fournisseur sont de même nature, ils partagent énormément de caractéristiques en commun, ce sont touts deux des entreprises.

Toute table doit comporter une clé primaire (primary key), un identifiant unique et invariable permettant à une autre table de faire la liaison avec notre enregistrement. Il n’y a absolument pas besoin qu’elle soit humainement compréhensible, bien au contraire. Le nom de l’entreprise n’est pas une clé primaire, elle est probablement unique, mais pas invariable. Une entreprise peut soudain changer de nom, même si c’est rare. Souvent une clé primaire est un numéro automatique ou une chaîne de texte complexe unique au sein de la base de données.

Les autres tables auront alors une clé étrangère (foreign key) y faisant référence.

Il s’agit ici de parler surtout des règles de nommage. Si vous souhaitez plus d’informations sur les bases de données, vous trouverez toutes les informations sur wikipedia.

Fabriquons quelques rubriques permettant de:

  • Voir une entreprise et son logo officiel
  • Identifier le directeur et son adresse mail
  • Cliquer sur un lien pour aller sur leur site internet
  • Voir l’adresse postale


Pour des raisons de lisibilité on remplace ici les espaces par des _ (underscore). On pourrait les supprimer et appondre les mots en recommençant chacun par une majuscule.

Entreprises

La table est au pluriel, elle en contient plusieurs
ID_Entreprise (Primary Key, clé primaire) unique pour une seule entreprise, c’est pourquoi elle est au singulier
entreprise_Nom Le nom de l’entreprise
entreprise_Type Le type d’entreprise, client ou fournisseur
Image_ID (Foreign Key, clé secondaire) La clé de l’image pour se lier à une seule image identifiant l’entreprise, son logo.
directeur_Nom Le nom de famille du directeur
directeur_Prenom Le prénom du directeur
directeur_Email L’adresse mail du directeur
uri_Protocole Pour le protocole internet (http ou https)
uri_Adresse Pour le nom de domaine ( www.truc.com)
adr_Rue La rue de l’adresse postale
adr_CasePostale La case postale de l’adresse postale
adr_NPA Le code postal pour l’adresse postale
adr_Ville La ville pour l’adresse postale
_AdressePostale la rubrique calculée qui composera l’adresse postale
_Hyperlink la rubrique calculée qui appondra l’adresse au protocole afin de créer l’hyperlien

Et pour stocker les logos dans la table image:

Images

La table est au pluriel, elle en contient plusieurs
ID_Image (Primary Key, clé primaire) unique pour une seule image, elle est au singulier
NomFichier le nom du fichier
Entreprise_ID (Foreign Key, clé secondaire) de l’entreprise à laquelle elle appartient
uri_Protocole Pour afficher l’image, le protocole internet (http:// ou https://)
uri_Adresse L’adresse web où se trouve l’image
_ImageSource la rubrique calculée qui appondra l’adresse au protocole afin d’obtenir la source de l’image

Conclusion

L’utilisation de préfixes est fortement recommandée, afin de grouper des rubriques et clarifier leur utilité.

Nommer une rubrique adresse ou nom uniquement, n’a de sens que s’il n’y a pas d’ambiguité, ici il y en aurait eu; adresse web ou adresse postale, nom d’entreprise ou nom du directeur.

Les deux tables possèdent des rubriques ayant des noms identiques (uri_Protocole et uri_Adresse), c’est tout à fait courant. Il n’est pas nécessaire d’utiliser un préfixe avec le nom de la table, ceci ne fait que les rallonger inutilement. Et ça fait sens, car leur contenu est similaire.

Codage

En programmation, les règles de nommage sont surtout importantes afin de s’en souvenir facilement et nous permettre de distinguer s’il s’agit de variables, d’objets ou de classes.

Ces règles peuvent varier d’un langage à un autre, mais ceci s’applique aux plus courants (java, C#, php, javascript, css)

Prenons par exemple un cas où nous devons coder des descriptions de logos.

  • On utilise les lettres de a à z et de A à Z, les variantes entre majuscules et minuscules ayant un sens.
  • On commence par une minuscule, s’il s’agit d’une variable.
    La variable qui instancie l’objet se nommerait: descriptionLogo
  • On commence par une majuscule, lorsqu’on nomme un objet ou une classe
    L’objet permettant de décrire un logo se nommerait: DescriptionLogo
  • Jamais d’espace. En programmation, l’espace sert à séparer les éléments d’une instruction.
    L’instruction qui crée la variable instanciant un objet serait: private descriptionLogo = new DescriptionLogo();
  • Jamais de ponctuation ou de signes spéciaux. En programmation ils servent à la syntaxe de nos instructions.
    Si notre description de logo contient une propriété de texte, un point permet de l’atteindre: Print( descriptionLogo.text );
  • Jamais d’accents. Pour éviter les problèmes d’encodage lorsqu’on passe d’une plateforme à une autre.
  • On utilise rarement des chiffres. En général, si on en a besoin, c’est qu’on a des valeurs diverses pour une variable. Il faut alors créer un tableau (Array) dont le chiffre sera l’index de la variable.
    Si nous avions de multiples descriptions, on appellerait chacune d’entre elle par:
    descriptionLogo[ 0 ], descriptionLogo[ 1 ], etc…

Conclusion

Chaque langage de programmation et chaque personne a ses propres conventions et convictions. Cet article n’est pas une norme, il s’agit là surtout de répondre à des questions qu’un néophyte peut se poser lorsqu’il se lance dans le développement d’un système informatique.