Voici la traduction de l'article du blog Better Programming sur le site Medium. Dans ce document, le programmeur Daan partage des règles simples, à la suite desquelles vous pouvez donner de bons noms aux fonctions et aux variables.
En tant que développeur, vous passez probablement beaucoup de temps à créer des variables et à trouver leurs noms. Les noms sont partout: ils sont nécessaires pour les fichiers, les classes, les méthodes et ces mêmes variables.
Puisque nous passons tellement de temps à attribuer des noms, il est très important de le faire de manière qualitative. Dans cet article, je vais vous parler de quelques règles simples, après lesquelles vous pouvez créer de bons noms. Après tout, c'est tout un art!
Utilisez des noms qui révèlent vos intentions
Le nom doit indiquer le but du code. Plus facile à dire qu'à faire, non? À quelle fréquence rencontrez-vous des variables dont les noms ne disent rien sur l'intention du programmeur?
La règle est la suivante: si un nom nécessite un commentaire, il ne traduit pas l'intention.Il y a une variable dans cet extrait de code dont le nom n'est pas clair:
<?php private $s;
La variable
$s
ne nous dit rien et n'est pas associée à une période de temps. Il est préférable de choisir un nom qui indiquera quoi et dans quelles unités il est mesuré.
Un des noms ci-dessous serait plus approprié.
<?php private $days_since_creation; private $elapsed_time_in_seconds; private $seconds_since_last_modified;
Les noms d'intention rendent le code plus facile à comprendre et donc plus facile à maintenir.
Vous passerez du temps à choisir le bon nom, mais enregistrez-le à l'avenir.
Considérez cet exemple:
<?php function getList() { $list1 = []; foreach ($this->the_list as $x) { if ($x % 2 != 0) { $list1[] = $x; } } return $list1; } function getOddNumbers() { $odd_numbers = []; foreach ($this->numbers as $number) { if (isOdd($number)) { $odd_numbers[] = $number; } } return $odd_numbers; }
Pourquoi est-il difficile de comprendre ce que fait la fonction
getList
? Pas d'expressions complexes, le code est correctement aligné et formaté, juste trois variables et rien de plus.
Regardez maintenant la fonction
getOddNumbers
. Avez-vous vu qu'elle fait la même chose que
getList
?
Notez que le code n'est pas devenu plus compliqué ni plus simple. Nous avons conservé le nombre d'opérateurs, de variables et de niveaux d'imbrication, mais maintenant c'est plus clair et transparent.
Un petit changement de nom - et il est déjà beaucoup plus facile de comprendre ce qui se passe.
Évitez la désinformation
Essayez d'éviter les fausses associations qui faussent le but du code.
N'utilisez pas de mots qui peuvent être compris d'une manière différente de celle que vous vouliez. Par exemple, ne
productList
pas
productList
groupe de produits
productList
, sauf s'il s'agit réellement d'un objet de type
List
. Un tel nom peut conduire à de fausses conclusions. Il vaut mieux utiliser uniquement des
products
.
Peut-être que les pires noms des variables commencent par une lettre majuscule
O
et un
L
minuscule, car ces caractères sont très similaires à 0 et 1.
Soyez également prudent avec les noms qui ne sont que légèrement différents les uns des autres. Combien de temps s'écoulera jusqu'à ce que vous
SomeMethodForEfficientHandlingOfFiles
une légère différence entre
SomeMethodForEfficientHandlingOfFiles
dans un fichier et
SomeMethodForEfficientStorageOfFiles
dans un autre? D'accord, à première vue, ils sont identiques.
Soulignez les différences significatives
L'utilisation de la numérotation n'est pas la meilleure façon de nommer. Ces noms ne sont pas informatifs, car ils ne révèlent pas du tout les intentions de l'auteur.
Regardons l'exemple suivant:
<?php public function duplicateArray($arr1, &$arr2) { foreach ($arr1 as $key => $value) { $arr2[$key] = $value; } }
Cet extrait de code se lira mieux si nous
$arr1
et
$arr2
en
$source
et
$destination
.
Utilisez des noms que vous pouvez prononcer
Si vous ne pouvez pas prononcer le nom de la fonction, il est peu probable que vous puissiez en parler et ne pas paraître idiot. C'est en fait important car discuter du code fait partie de la programmation. Cependant, chacun de nous doit avoir rencontré des variables avec des noms imprononçables.
Supposons que vous ayez une variable appelée
$xsq
et que vous en discutiez souvent avec l'entreprise. Et ici, vous parlez avec un collègue:
- Eh bien, qu'est-ce que c'est avec ex es quew?
- Avec quoi? Avec file d'attente d'accès?
Certains développeurs prononceront le nom de la variable sous forme de mot et d'autres sous forme d'abréviation.
Utiliser des noms consultables
Le problème avec les noms à une seule lettre est qu'ils sont difficiles à trouver dans le code.
Même chose avec les constantes numériques. Il vaut mieux les remplacer par des variables. Par exemple, le nombre habituel 8 peut causer beaucoup de problèmes si vous avez besoin de trouver quelque chose dans le code. Cependant, ce sera beaucoup plus facile si vous remplacez le numéro par quelque chose comme
MAX_BLOCKS_DISPLAYED
.
La seule situation dans laquelle il vaut la peine d'utiliser des noms à partir d'une seule lettre est d'inventer des noms pour des variables locales à l'intérieur de méthodes courtes.
Préfixes des membres du groupe
N'utilisez pas de préfixes m_.
Certains développeurs ont l'habitude d'utiliser un préfixe de soulignement devant les membres de la classe. Ne fais pas ça. Vos classes et méthodes doivent être suffisamment compactes pour que vous n'ayez besoin d'aucun de ces préfixes.
Alternativement, vous pouvez utiliser l'IDE (ou installer le plugin), qui met en évidence les variables en fonction de leur portée.
Considérez votre code comme un lieu de pique-nique dans la forêt - laissez-le plus propre qu'il ne l'était avant votre arrivée.
Conclusion
C'est ainsi que des noms plus compréhensibles pour le code sont créés.
Commentez, laissez vos questions et écrivez si vous voulez que je couvre d'autres sujets liés à la programmation.
Cet article est inspiré du livre Clean Code de Robert Martin, que je recommande fortement de lire.