Non, tout le code n'est pas nul !!

good_code_bad_code
Je viens de lire un article qui met en avant l’idée que tous les codes écrits par les développeurs sont aussi nul les uns que les autres …
En tant que développeur avec 18 ans d’expérience professionnelle (et cela faisait 10 ans que je codais avant de devenir professionnel) je ne peux que m’insurger contre cette affirmation gratuite et volontairement provocatrice !!!
J’ai travaillé dans des petites équipes de développement de quelques personnes mais aussi dans des grandes fabriques de logiciels pour des PABX (Lucent) ou de téléphones mobiles (Mitsubishi Electric) et, pour avoir maintenu du code de nombreuses personnes, je peux affirmer que tous les codes ne sont pas nuls et ne se valent pas !!!
Il est important de garder à l’esprit que le code doit être facilement maintenable ; il y a une image qui circulait sur Twitter concernant le code et sa maintenance, sur cette image était écrit : “Lorsque vous codez, garder toujours en tête que celui qui devra maintenir votre code est un schizophrène qui connait votre adresse !!!”  C’est un point important à garder en tête, un parmi d’autres …
Je me souviens avoir passé du temps sur l’ajout d’un élément dans un tableau d’une dizaine de valeurs sur PC et avoir perdu de temps à comprendre pourquoi je n’obtenais pas le bon résultat ; en fait le code avait était réalisé par quelqu’un de brillant qui utilisait un algorithme de tri par dichotomie et donc il faillait placer le nouvel élément au bon endroit et non pas à la fin !!! Efficace, très optimisé mais ce n’était qu”une perte de temps pour du code tournant sur PC avec un tableau qui ne compterait jamais plus de 15 éléments !!!
Ne pas oublier non plus que la factorisation à outrance peut vous faire perdre beaucoup de temps : un code n’est jamais terminé, on peut toujours l’optimiser, le factoriser, l’organiser différemment ; si vous avez le temps alors je vous conseille de passer de nouveaux tests et si vous pouvez mettre en place un système de tests de non-régression automatique alors c’est un très bon moyen de tester la robustesse de votre code et de ses évolutions (surtout si vous faites des modifications sur des lignes de code dans lesquelles vous ne vous êtes pas replongé depuis plusieurs mois).
Il n’y a pas une façon de coder mais des règles de bon sens à suivre qui dépendent fortement du langage utilisé ; il y a des règles de nommage qui facilitent aussi la vie ainsi que l’utilisation de pattern classiques ; les profs d’algorithmique pourront vous le dire, pour un même problème, il y aura autant de codes différents que d’élèves ayant répondus à l’exercice !!!
Il ne faut pas oublier que si vous lisez cet article c’est parce des personnes codent et maintiennent WordPress depuis quelques années …
Source de l’article (en anglais) : LifeHacker