Je crois que les conventions de nommage sont sans doute l'une des premières choses que l'on apprend en tant que développeur, elles ne s'arrêtent pas à l'agencement des caractères, mais c'est là-dessus que nous allons nous concentrer aujourd'hui.

Les conventions de nommages servent principalement à :

  • collaborer plus facilement et à éviter les erreurs lorsque l'on participe à un projet
  • créer un code lisible et homogène
  • faire en sorte que la prise en main d'une base de code soit la plus intuitive possible
Lorsque je discute avec des développeurs, notamment des juniors, j'ai l'impression qu'il n'existe qu'une seule façon d'écrire du code : le camelCase et rien d'autre !

Pourtant l'horizon est bien plus vaste que ça, nous allons donc en faire un tour pour voir ce qui existe, pourquoi et comment on peut les utiliser.

Le Camel Case

Exemple : theUnicorn

L'utilité du camel case, comme toutes les autres conventions décrites dans cet article est d'écrire plusieurs mots ensemble sans utiliser d'espace, tout en gardant la lisibilité des mots séparés.

Son nom vient du fait que la lettre majuscule en début de chaque mot donne à ce dernier une ressemble avec le chameau (camel en anglais) et ses bosses. C'est la convention de nommage la plus connue, elle est même présente dans des marques comme iPhone ou eBay.

Plusieurs langages de programmation la définissent comme convention par défaut (en Java et Javascript par exemple) pour le nommage des variable et des fonctions.

Lorsqu'elle est utilisée en dehors de l'informatique, on utilise une majuscule sur le premier mot, mais en programmation on passe la première lettre en minuscule, sinon on parle de "Pascal Case"

Le Pascal Case

Exemple : AwesomeNinja

Le "Pascal Case" est une variante du "Camel Case" qui introduit une majuscule en début du premier mot, c'est notamment cette variante qui est utilisée pour nommer des classes ou des modules dans différents langages.

Le mot "Pascal" vient du langage de programmation éponyme créé en 1970 et utilisant cette convention de nommage notamment pour ses programmes, modules et types comme indiqué ici.

FunFact : Il existe une variante plus restrictive de cette convention appelée "WikiCase" obligeant à ce que chaque majuscule soit suivie d'une lettre minuscule, interdisant les mots comme "ReadABook" ou encore "parsePHP".

Le Snake Case

Exemple : an_easy_diy

C'est notamment la convention de nommage des variables et fonctions en C ainsi qu'en Python.

Personnellement c'est celle que j'utilise aussi pour les projets que je lead en Javascript.

Le snake case offre deux avantages :

  • Il élimine les ambiguïtés d'écriture sur les acronymes (en camel case on pourrait écrire XMLHTTPConnection ou XmlHttpConnection).
  • Il se lit plus rapidement que le camel case comme le montre cette étude de l'université de Kent State

Mais il est vrai que le nombre de caractères à écrire et à transmettre est plus important, à vous de voir si vous préférez privilégier la vitesse d'écriture à la facilité de lecture !

Le Kebab Case

Exemple : just-a-steack

Le tiret n'étant pas accepté par la syntaxe de la majorité des langages de programmation, on ne le retrouve pas directement dans le code, néanmoins le kebab case reste le standard en terme de nommage de ressources sur le web.

Pour un visiteur classique, il est plus naturel à lire, mais surtout pour les moteurs de recherche il est indispensable de garder une réelle séparation entre les mots pour optimiser son référencement.

Pour un crawler, l'url "/notreequipe/contacteznous.html" ne contiendra pas de mot-clé reconnaissable, contrairement à l'url "/notre-equipe/contactez-nous.html".

Le Flat Case

Exemple : idontlikespace

Le seul exemple du flat case qui m'est venu à l'esprit en rédigeant cet article sont les packages en Java que l'on nomme "com.android.mybeautifulapp".

Les points ne font pas partie du nommage, mais de la hiérarchie des paquets.

Je ne conseillerai à personne de l'utiliser en dehors de ce cas-là car celà revient à perdre tout l'intérêt des conventions de nommage précédentes, c'est à dire la séparation visuelle des mots.

L'Upper Case

Exemple : SIMPLY_GLOBAL

On peut trouver l'upper case avec ou sans underscore mais on le rencontre généralement moins fréquemment que les autres car cette convention est "réservée" à la déclaration de variable globales, de constantes ou parfois d'énumérations.

Le fait qu'elle soit imposante par rapport au reste du code permet de la repérer beaucoup plus facilement.

Conclusion

Ce qui est le plus important, c'est de se tenir à une convention de nommage. Vous avez le droit de choisir votre convention sur vos projets mais vous devez à tout prix respecter celle déjà instaurée sur le projet auquel vous allez collaborer !

Pour certaines conventions, comme le Pascal Case pour les noms des classes il est quand même préférable de s'y tenir car celà fait consensus à travers tous les langages et les communautés.

Mais si toi aussi tu as un petit faible pour le snake_case, n'hésite pas à me le dire en commentaire ;)

J'espère que cette article vous aura plus, et je vous dis à bientôt sur le blog !


À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Kristian Strand sur Unsplash