Explicites pour qui? Quand on documente du code, on le fait pour des gens qu'on ne connait pas, qui interviendront dans des années, sur un code qui aura évolué, avec des "bonnes pratiques" qui n'auront peut être plus grand chose à voir avec les vaches sacrées actuelles...
Le langage mathématique a l'avantage d'être très standardisé, d'évoluer assez lentement, et d'avoir été vu par à peu près tous les programmeurs. Si dans un code tu vois des i et des j, tu devines qu'il s'agit d'indices. Pareillement, des positions représentées par des r, theta et phi (on des angles psi, phi, theta) sont très claires pour quiconque a un peu de culture mathématique, probablement plus que l'explication en franglais de cuisine d'un développeur qui voudra "faire expressif".
A mon avis, dès qu'on est sur un algorithme un tant soit peu matheux, on a tout intérêt à conserver aux variables leur "nom mathématique". Et plus généralement, il vaut souvent mieux s'appuyer sur des conventions à peu près stable de nommage de variables, quitte à ce que les noms ne soient pas trop précis.
C'est ce que ces variables représentent aujourd'hui, mais le code risque d'évoluer et le nom de variable peut devenir tout aussi faux qu'un commentaire.
Il est typique, en 2D, d'appeler x l'abscisse (la coordonnée horizontale), et y l'ordonnée. Mais c'est souvent une mauvaise idée de les renommer en position_horizontale et position_verticale. Il suffit d'une évolution du code, qui permet les rotations, pour que cela devienne illisible. Pareil avec les tableaux, indice_ligne, indice_colonne est très souvent une mauvaise idée : il suffit d'une transposition...
Et quand tu te retrouves à débuguer ce genre de code expressif, où les classes ont été "bien nommées" au début, par quelqu'un qui ne comprenait pas tout à fait bien la logique d'ensemble, où les position_horizontale n'en sont pas, où le champ code_invariant est en fait variable, ou "net" veut dire "brut" et inversement... tu te dis que tu aurais préféré du Fortran ou du Cobol.
Le code très expressif qui s'autodocumente, c'est souvent un fantasme de jeune développeur, et au cauchemar de vieux mainteneur...
Francois
Partager