XD blog

blog page

nettoyer


2014-02-07 Nettoyer son code

Après quelques années passées à enseigner, j'ai plein de bouts de code qui traînent partout, écrits sur des versions de Python différentes. Il y a des print avec ou sans parenthèses, des codes indépendants, d'autres liés à d'autres bouts. Parfois, j'ai envie de les réutiliser bien qu'ils soient vieux, qu'ils ne compilent plus avec la dernière version de Python. Alors, on s'y attaque, on l'exécute, on bute sur une erreur qu'on corrige avant d'essayer à nouveau. Est-ce le début d'un cycle fastidieux ou d'un cycle sans fin ? Avec un peu d'obstination - voire beaucoup - et on y arrive. Mais bien souvent, on s'arrête là, avec ce petit exemple qui fonctionne. C'est l'essentiel pour un exemple. Pour un programme, c'est souvent un peu juste. Les exécutions à répétitions n'ont ébranlé que la moitié du code. L'autre est restée intacte. La dernière version de Python la comprend, de là à dire qu'elle puisse l'exécuter...

Il existe un module qui effectue quelques vérifications : pylint. Il vérifie la syntaxe, les variables non utilisées, les modules importées inutilement, ou encore si une exception est correctement orthographiée. La plupart du temps, on se rarement rend compte qu'on a écrit raise Exeption("....") sauf quand l'erreur survient. On pourra rétorquer que cela devrait être couvert par les tests unitaires mais couvrir 100% du code est un travail laborieux. Et si vous êtes parfois paresseux comme moi, vous utiliserez parfois WinPython qui vous signale chaque endroit que la bonne syntaxe réprouve. Y jeter un coup d'oeil de temps en temps permet de repérer quelques erreurs avant la première exécution.


Xavier Dupré