Code propre

- 3min

Je ne serai ni le premier ni le dernier, vous en conviendrez, à aborder le sujet.

Si je suis venu parler de code propre c’est parce que je suis en train de lire l’intéressant livre de Robert C Martin : “Coder proprement”. J’adhère sur certains propos que j’ai pu lire dans ce livre et j’avais envie de partager sur la toile mon avis à ce propos.

Qu’est-ce un code propre ?

Un code propre, d’après Robert C. Matin, c’est :

  • un code lisible
  • un code simple
  • un code bien pensé/réfléchi
  • un code minimal si possible
  • un code améliorable par n’importe qui

Le fond c’est bien, mais la forme ça aide.

Un code indenté est toujours plus beau qu’un code pas indenté ou mal indenté. J’en veux pour preuve la norme de l’Epitech. J’ai un copain qui y est et qui m’avait raconté que dès la première année, on vous impose une norme d’écriture (si vous cherchez un peu sur Google, vous trouverez des bribes concernant cette norme). Elle apprend aux élèves à écrire du bon code (il y a un autre raison à cette norme, mais là n’est pas le sujet).

Quand vous codez, faîtes comme si quelqu’un irait lire votre code après et que vous ne serez pas à ses côtés. En entreprise ce sera très certainement le cas. Le code sera maintenu par quelqu’un d’autre que vous.

Vous êtes une sorte d’écrivain, vous écrivez un roman, pour vous mais surtout pour les autres.

Un code propre c’est un bon code.

Bien que je sois novice, ma faible expérience me permet déjà d’adhérer à ces propos ! À titre d’expérience, j’ai travaillé sur un projet étudiant avec deux camarades : un logiciel de dessin vectoriel simplifié en Java.

Durant le projet, j’ai pu jauger le niveau de mes deux comparses. L’un deux était très très fort. Celui qui était très fort on va l’appeler Jacques, et celui qui l’était un peu moins Michel.

Jacques était très fort donc assez rapide à nous fournir du code. Son premier jet fut quasi illisible sauf pour lui. Mais pas seulement son premier jet, peu à peu on avançait dans le projet, ses variables restaient parfois un mystère. Avec un peu de bon sens, j’arrivais à comprendre (mais pas tout) son code. Ce qui n’était, hélas, pas le cas de Michel !

Peut être bien que Jacques trouvait compréhensible d’écrire private Coord mse = new Coord(0,0); les coordonnées de la souris (mse > mouse), mais ce n’est pas forcément le cas pour les autres !

private Coord mse = new Coord(0,0); // pas forcément clair
private Coord coordMouse = new Coord(0,0); // plus clair, non ?

Chacun à sa façon d’écrire, bien entendu. Tant que c’est compréhensible…

Toujours sur ce même projet, j’ai pris l’habitude de toujours commenter mon code. Ce qui n’était pas le cas de mes collègues; ce qui est peut-être la deuxième raison pour laquelle Michel était perdu. Un code propre, pour moi en tout cas, passe aussi par mettre un maximum de commentaires, pas forcément de faire un pavé digne de Guerre et Paix, mais de documenter un minimum…

En résumé, si vous revenez dans 3 mois sur votre code, et que cela vous semble pas très compréhensible du premier coup d’oeil : peut-être que vous avez mal écrit vos variables ou que les commentaires sont pas très utiles à la compréhension. D’un coup, c’est moins parlant.

D’où: un code propre, c’est un bon code.

Une citation qui m’a marquée dans ce livre c’est ce proverbe de scout:

“Laissez le campement plus propre que vous ne l’avez trouvé en arrivant.” — Robert C. Martin

Je n’ai pas fini de lire le livre, certaines choses me dépassent encore, mais il est clair que c’est un ouvrage très intéressant à avoir dans sa bibliothèque.

One more thing

Le livre mentionne le code simple selon Beck, une définition intéressante et… simple de ce que doit être un beau code.

Par ordre de priorité, un code simple :

  • passe tous les tests ;
  • n’est pas redondant
  • exprime toutes les idées de conception présentes dans le système
  • minimise le nombre d’entités, comme les classes, les méthodes, les fonctions et assimilées