Bonjour,
La question et la diversité des réponses est amusante.
Au boulot, je mets des noms souvent assez longs parce qu’il doivent être suffisament clairs pour toute l’équipe et parce qu’il y a des conventions pour ça.
Maintneant pour mes codes perso qui ont une probabilité quasi-nulle d’être lus par quelqu’un d’autre que moi, y compris ceux qui sont sur mon github:
- Pour les variables d’instance ou les variables globales: je choisis de préférence des noms courts, mais hormis pour les mots vraiment trop casse-pied a écrire, je prends quand même des mots entiers;
- Pour les variables de boucle ou de fonctions/méthodes relativement courtes, j’utilise assez souvent des noms qui ont 4 caractères ou moins
- J’ai horreur du franglais; donc je choisis des noms en anglais de préférence
- Ayant été bercé au Java, j’ai adopté camelCase, et je réserve SNAKE_CASE pour les constantes; ailleurs dans le code je déteste snake_case.
- Je réserve le pluriel pour les listes, tableaux et autres collections; les scalaires et objets simples sont au singulier
Je ne suis vraiment pas fan de la convention que certains soutiennent à vouloir systématiquement préfixer les noms par des indications de portée ou de type: m/g pour membre/global, n/nb/i/l pour int/long, s/str pour string, f pour float/double, etc.
Je trouve que ça n’apporte strictement rien et je pars du principe que le nom de la variable devrait être assez clair pour qu’on n’ait pas besoin de rappeler son type ou sa portée.
Ceux qui font du C++ sont les spécialistes pour faire ça, mais je l’ai déjà vu en PHP aussi.
Du coup pour répondre par rapport à l’exemple, si ce sont des variables d’instance ou globales, alors pour moi ce sera sûrement respectivement $source
, $destination
pour les deux premières, et $userId
, $user
ou $nbUsers
selon ce qu’elle va stocker exactement (avec juste l’exemple ce n’est pas assez clair si on y stocke un ID, un objet ou un nombre d’utilisateurs) pour la troisième.
Ce nom ne changerait pas beaucoup quelque soit le langage (je fais toujours du camelCase y compris en C++ et en python).
En tout cas j’aurais probablement omis le mot image
du nom car ça m’aurais probablement paru comme étant une évidence dans le contexte, qu’on est en train de travailler avec des images.
Voilà pour moi !
Et sinon, pour étendre un peu la question de départ, comment nommez-vous vos fonctions et méthodes ? Fan des noms courts à la limite cryptiques de la libc ? ou plus classique en camelCase ou snake_case ?
Le premier mot est-il toujours un verbe ou pas forcément ? Êtes-vous fan des pseudo conventions du genre première lettre minuscule = privé, majuscule = public (ça je crois que c’est une spécialité C# et Microsoft en général) ?
Pour moi c’est classique et en principe toujours un verbe comme premier mot.