- Ad Astra Per Aspera
- Posts
- Parfois il faut savoir être explicite
Parfois il faut savoir être explicite
quand il s'agit de nommer des variables
La semaine dernière, j'ai travaillé avec des objets qui représentent des factures et commandes et j'ai débogué des problèmes d'arrondi de conversion de devises (on s’amuse comme on peut!). Chaque objet avait une méthode appelée getMontant()
. Le nom est joli, court et accrocheur. Où est donc le problème ?
Bon, en dehors du fait que du texte français dans du code c’est bof, cette méthode était censée exprimer un montant monétaire, mais en lisant le code et en essayant de déboguer, j'ai commencé à me poser des questions...
- Est-ce que c’est avec ou sans TVA ?
- Est-ce que c'est en euros ou en devise ?
- Es-ce que c’est en centimes (entiers) ou en unités (flottant) ?
Dans les temps anciens de la programmation (par exemple, à l'époque préhistorique des années 1980, lorsque j'utilisais un ZX81), la mémoire était précieuse et chaque caractère comptait. Les noms de variables courts étaient une nécessité. Mais aujourd'hui, le texte n'est pas la cause de la saturation de notre mémoire. Nous avons les vidéos 4K pour cela. Ce n’est plus nécessaire d'être avare en noms de variables.
J'ai parcouru le code et modifié les noms des méthodes de la classe pour les rendre plus explicites. La méthode getMontant()
, par exemple, est devenue getAmountPreVatEuroFloat()
.
Ce faisant, j'ai découvert plusieurs avantages :
Le code était plus facile à lire. Non pas en termes de complexité logique, mais en termes d'effort mental nécessaire.
Certains bugs sont devenus plus évidents, par exemple lorsque nous additionnions des choses qui n'avaient aucun sens.
Et il est devenu plus facile de débugger ce que proposait l'IA et les suggestions d'auto-complétion.
Comme toujours, XKCD fait mouche :

XKCD 2309
Avez-vous déjà rencontré des variables dont les noms prêtent à confusion ou induisent en erreur ? J'aimerais connaître vos exemples.
Glané sur le web
J'examine de plus près un outil open-source appelé « Latitude », conçu pour aider à l'ingénierie des prompts, au suivi des changements et à l'évaluation des résultats. Il fonctionne comme une bibliothèque d'invites et vous permet de tester les résultats avec différents LLM.
Reply