[:fr]Convention de nommage informatique[:en]Naming convention on a computer[:]

triskel pensees

[:fr]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.[:en]When starting out in the development of websites, applications or databases, we often wonder how to name things. Here are some ways to help you, inspire you and minimize the risk of errors.

A   naming convention   in computer programming is a set of rules for choosing the identifiers (element names) in the source code and documentation. To better understand the benefits and challenges of doing this, visit the full wikipedia article.

Why to follow a naming convention?

humor man machine

First because a machine, a computer system, a file system is not human at all. Reduced to its smallest scale, it is electricity that oscillates between 0 and 5 volts at a frantic pace and we ultimately want the result to have an aspect that we can understand. Between the two, there is often a machine, an OS, a file and an application which finally appears on a screen.

We must separate the result that we see and the way we achieve it. Separate the human aspect from the technical aspect. This article deals with the second.

Name of files and folders

Suppose we have just made a logo that will only be used during the summer and that it should be recorded. Our mind suggests us to name it:

High Résolution Logo, Summer 2018.jpg

This name is not appropriate, even if locally on your computer everything will be fine. It’s in your memory, in applications and on the internet that it’s going to get stuck.

  1. It contains capital letters – On the Internet, a capital letter is not equivalent to a lower case. Windows and MacOS are very tolerant, while a web server is not at all.
    Which means that if you have to write it in code, you will have to remember the exact syntax.
    If you do not use it, it will be less beautiful to read for a human, but you will remember much better.
  2. It contains accents – On the internet, an accent must be encoded (replaced by a code) and this code is not identical according to the platform (Windows ISO 8859-1, MacOS   Novel).
    Do not use accent ensures full compatibility between all platforms.
  3. It contains special signs – Apostrophe and punctuation are special signs. Some signs have special meanings (‘ « ,;? = # /: < >) All serve something special in programming or on the internet.
    Do not use signs, avoid side effects and do not need to encode them.
    Four signs are allowed _ ( underscore ) – (drew) and parentheses. However, it is recommended to use only one, the underscore . The others can be interpreted as arithmetic operations.
  4. It contains spaces – On the internet, when accessing a file within a URI (URL) spaces are not allowed. It will therefore be necessary to replace the space with a code (% 20).
    Do not use spaces, you do not have to encode the file name. Use an _ ( underscore ) instead.
  5. It contains a date – If a year later you change logo, you will probably redo a new file and name it « … December_2019.jpg » but then you will have to think about updating all the applications, all your pages web site as well as all related sites that used your logo, to inform them that the logo at changed and you have to bond with the new one. It’s a titanic job, if not impossible.
    Instead, archive the old file by naming it with a date, but always keep the same name for the one that will serve as a reference.

It should therefore be named:

logo_haute_resolution.jpg

For a folder, use the same rules for the same reasons.

Conclusion

To name a file, use the letters from a to z , in lowercase as well as   the numbers from 0 to 9 .

To separate the words,   do not use spaces , use the underscore _ instead.

Avoid any other sign or punctuation.

Databases, Tables and Topics

Imagine that we have to create a database containing the logos of our customers. It will contain two tables.

A database is a file, the previous 5 rules are required. So we will name it:

images_entreprises

Why not logos_clients ?

Our current project may be limited to the logos of our customers, but if it works well it could evolve easily and can store photos and logos, for all partner companies, customers and suppliers.

Now let’s name our two tables, the same naming rules apply, although there is a variant with capital letters:

  • companies or Companies
  • logos or Logos

It is advisable to create tables according to their nature and to name them in order to be able to make them evolve easily.

A logo is an image of a certain type, just like a photo. It will be easy to distinguish them by a heading.

A client and supplier are similar, they share a lot of characteristics in common are wholes two companies.

Every table must have a primary key (primary key), an identifier   unique and invariable allowing another table to link to our record. There is absolutely no need for it to be humanly understandable, on the contrary. The company name is not a primary key, it is probably unique, but not invariable. A company can suddenly change its name, even if it’s rare. Often a primary key is an automatic number or a unique complex text string within the database.

Other tables will then have a foreign key (foreign key) referring to it.

It’s all about naming rules.   If you want more information about databases, you’ll find all information on wikipedia .

Let’s make some headings allowing to:

  • See a company and its official logo
  • Identify the director and his email address
  • Click on a link to go to their website
  • See postal address

First without the capital letters

business The table is plural, it contains several
pk_entreprise ( Primary key, primary key) unique for a single company, that’s why it is singular
entreprise_nom The name of the company
entreprise_type The type of company, customer or supplier
fk_image ( Foreign Key, secondary key) The key of the image to bind to a single image identifying the company, its logo.
directeur_nom The last name of the director
directeur_prenom The director’s first name
directeur_email The director’s email address
uri_protocole For the internet protocol (http or https)
uri_adresse For the domain name (www.truc.com )
adr_rue The street of the postal address
adr_case_postale The postal box of the postal address
adr_npa The postal code for the postal address
adr_ville The city for the postal address
calc_adresse_postale the calculated heading which will compose the postal address
calc_hyperlink the calculated item that will add the address to the protocol in order to create the hyperlink

And to store the logos in the image table:

imagery The table is plural, it contains several
pk_image ( Primary key, primary key) unique for a single image, it is singular
filename the file name
fk_entreprise ( Foreign Key, secondary key) of the company to which it belongs
uri_protocole To display the image, the internet protocol (http or https)
uri_adresse The web address where the image is
calc_image_source the calculated item that will load the address to the protocol in order to obtain the source of the image

With capital letters

companies The table is plural, it contains several
ID_Entreprise ( Primary key, primary key) unique for a single company, that’s why it is singular
entreprise_Nom The name of the company
entreprise_Type The type of company, customer or supplier
image_id ( Foreign Key, secondary key) The key of the image to bind to a single image identifying the company, its logo.
directeur_Nom The last name of the director
directeur_Prenom The director’s first name
directeur_Email The director’s email address
uri_Protocole For the internet protocol (http or https)
uri_Adresse For the domain name (www.truc.com )
adr_Rue The street of the postal address
adr_CasePostale The postal box of the postal address
adr_NPA The postal code for the postal address
adr_Ville The city for the postal address
_ PostalAddress the calculated heading which will compose the postal address
_ Hyperlink the calculated item that will add the address to the protocol in order to create the hyperlink

And to store the logos in the image table:

imagery The table is plural, it contains several
ID_Image ( Primary key, primary key) unique for a single image, it is singular
filename the file name
Entreprise_ID ( Foreign Key, secondary key) of the company to which it belongs
uri_Protocole To display the image, the internet protocol (http or https)
uri_Adresse The web address where the image is
_ ImageSource the calculated item that will load the address to the protocol in order to obtain the source of the image

Conclusion

The use of prefixes is strongly recommended to group topics and clarify their usefulness.

To name a heading address or name only, makes sense only if there is no ambiguity , here there would have been; web address or mailing address, company name or director’s name.

Both tables have fields with the same name, which is quite common. It is not necessary to use a prefix with the name of the table, this only lengthens them unnecessarily. And that makes sense because their content is similar.

Coding

In programming, naming rules are important in order to distinguish between   variables , objects or classes .

These rules may vary from one language to another but speci c applies to most currents (Java, C #, PHP,   javascript , css )

Let’s take a look at the examples where we have to code descriptions of logos.

  • We use the letters from a to z and from A to Z , the variants between upper and lower case having a meaning.
  • We start with a capital letter , when we name an object or a class .
    The object to describe a logo would be named: DescriptionLogo
  • We   starts with a lowercase , if it is a variable .
    The variable that instantiates the object would be named: descriptionLogo
  • Never space . In programming, space is used to separate the elements of an instruction.
    The statement that creates the variable instantiating an object would be: private descriptionLogo = new DescriptionLogo ( );
  • Never punctuation   or special signs. In programming they serve the syntax of our instructions.
    If our logo description contains a text property, a dot allows you to reach it: Print ( descriptionLogo.text );
  • Never accents . To avoid encoding problems when moving from one platform to another.
  • Numbers are rarely used . In general, if we need it, we have different values ​​for a variable. It is then necessary to create an array whose number will be the index of the variable.
    If we had multiple descriptions, we would call each of them by:
    descriptionLogo [ 0],
       descriptionLogo [1] , etc …

Conclusion

Every programming language and every person has its own conventions and convictions. This article is not a norm, it is mainly about answering questions that we can ask ourselves when we start to discover and act in a computer system.[:]