Publié le

L'importance du nommage

5 min lecture - 802 mots
Auteurs
  • avatar
    Nom
    Cédric RIBALTA
    Twitter

Introduction

En tant que développeur, tu as probablement déjà été confronté à du code incompréhensible où les variables, les fonctions ou les classes portent des noms obscurs comme toto, foo ou bar.

Bien que cela puisse paraître anodin ou un simple raccourci, c’est l’une des erreurs les plus coûteuses en termes de maintenabilité et de lisibilité du code.

Si tu as déjà entendu parler du livre Clean Code de Robert C. Martin aka Oncle Bob, tu sais peut-être que l’un de ses chapitres traite de l’importance d'un bon nommage dans le code.

Cet article va t'expliquer pourquoi cette pratique est cruciale et comment l'appliquer dans ton propre travail.

Qu'est-ce qu'un bon nommage ?

Un bon nommage est tout simplement un nom qui révèle l’intention.

Cela signifie que le nom d’une variable, d’une fonction ou d’une classe doit décrire de manière claire et précise ce que cet élément représente ou ce qu’il fait.

Dans un monde parfait, un développeur qui lit ton code ne devrait pas avoir besoin de creuser dans les détails d'une fonction ou de suivre chaque ligne de code pour comprendre son but.

Prenons un exemple :

// Mauvais exemple
let d: number

// Bon exemple
let elapsedTimeInDays: number

Dans cet exemple, d est un nom vague qui ne donne aucune information sur ce que cette variable représente.

En revanche, elapsedTimeInDays est un nom qui communique immédiatement l’intention : il s'agit du temps écoulé en jours.

En choisissant un nom significatif, tu améliores instantanément la lisibilité du code.

Les conséquences d’un mauvais nommage :

Les noms qui ne sont pas explicites peuvent causer des problèmes à court, moyen et long terme :

  • Temps de compréhension accru : Lorsque toi ou un autre développeur devez revenir sur ce code des mois ou des années plus tard, un nom vague ou trompeur peut rendre le processus de compréhension fastidieux. Il vous faudra peut-être fouiller dans le code pour comprendre ce que fait chaque entité.

  • Erreurs d'interprétation : Un mauvais nom peut induire en erreur et pousser à mal utiliser ou mal interpréter la fonctionnalité. Par exemple, nommer un tableau accountList alors qu’il s’agit d’un tableau au lieu d’une liste peut induire une fausse idée de la structure de données utilisée.

  • Maintenance difficile : Plus un projet devient complexe, plus il est difficile de maintenir un code avec des noms peu explicites. Un code propre avec des noms significatifs est plus facile à mettre à jour et à faire évoluer.

Règles pour choisir une bonne convention de nommage :

  1. Révéler l'intention : Un bon nom doit permettre de comprendre la fonction ou le rôle d’une entité sans avoir à plonger dans les détails d’implémentation. Cela doit être instantané.
// Mauvais exemple
let t: number[]

// Bon exemple
let transactionAmounts: number[]

Dans cet exemple, t ne nous apprend rien, alors que transactionAmounts nous dit clairement ce que contient la liste.

  1. Éviter les abréviations :

Les abréviations, bien qu’elles puissent sembler pratiques, nuisent à la lisibilité. Sauf dans des cas où l'abréviation est un standard industriel, il est préférable d’utiliser des noms complets.

// Mauvais exemple
let usrCnt: number

// Bon exemple
let userCount: number
  1. Faire attention à la cohérence :

La cohérence des noms dans un projet est cruciale. Si vous utilisez fetchUserData dans un endroit, ne nommez pas la même fonction retrieveUserData ailleurs.

Maintenir une terminologie cohérente améliore la compréhension du projet global.

  1. Utiliser des noms appropriés pour la portée :

Pour les variables à courte portée (par exemple, des variables locales dans une fonction), des noms plus courts peuvent être suffisants, tandis que pour des variables ayant une portée plus large, il est conseillé d’avoir des noms plus descriptifs.

// Pour une variable locale
for (let i = 0; i < 10; i++) { ... }

// Pour une variable globale ou membre de classe
let maximumUserAge: number;
  1. Éviter les termes techniques dans les noms :

Il est déconseillé de coder des informations techniques dans les noms, comme le type de structure de données ou d’autres détails d'implémentation.

Par exemple, ajouter des suffixes comme List, Data, ou Info peut rendre les noms encombrants et non nécessaires si l'information est déjà claire par le contexte.

// Mauvais exemple
let accountList: number[]

// Bon exemple
let accounts: number[]
  1. Faire des noms faciles à rechercher :

Choisir des noms trop courts ou trop génériques rend les recherches dans le code difficiles. Utiliser des noms spécifiques facilite la navigation dans les grands projets.

// Mauvais exemple
let max: number

// Bon exemple
let maximumAllowedConnections: number

Conclusion

Choisir des noms significatifs est une compétence clé pour tout développeur.

Bien que cela puisse sembler secondaire, cela améliore considérablement la qualité, la lisibilité et la maintenabilité du code.

En suivant les conseils de Clean Code, tu pourras transformer ta manière de coder et rendre tes projets plus faciles à comprendre, pour toi même et pour les autres.

Il est souvent dit que "le code est plus souvent lu qu'il n'est écrit".

En gardant cela à l'esprit, investir du temps dans le choix des noms appropriés est un investissement à long terme pour la qualité de ta codebase.