Comment trouver des noms significatifs pour votre code

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; // Time in seconds 

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.

Source: https://habr.com/ru/post/fr459793/


All Articles