Code zombie

«Un code zombie (de l’anglais zombie code) est une expression utilisée pour décrire un logiciel ou des lignes de codes qui sont plus ou moins abandonnés ou non-supportés, mais qui en principe restent disponibles» explique Daniel Stubbs, analyste scientifique à Calcul Québec et membre de la Fédération Calcul Canada.

Ces lignes de code, plus ou moins grandes, ne servent plus à rien et ne sont pas exécutées. Elles ne devraient plus être présentes, mais pour des raisons souvent nébuleuses, sont encore bien visibles, rendant l’ensemble du code chaotique et parfois totalement illisible !

Heureusement, les code zombies ne sont pas aussi dangereux que les zombies mangeurs de cerveaux que l’on retrouve dans les films d’horreur (et honnêtement, notre équipe d’analyses préfère de loin rencontrer ces premiers). Les zombie code sont néanmoins une nuisance et lorsqu’ils sont trop nombreux, ils peuvent donner à votre code un aspect post-apocalyptique…

«Les zombie code sont malheureusement très fréquents, explique Daniel Stubbs. Par exemple, nous aidons des chercheurs et des chercheuses qui ne sont généralement pas experts en programmation. Ils sont d’abord experts dans leur science. En conséquence, nous rencontrons beaucoup de zombies.»

«Un code confus complexifie les mises à jour et l’optimisation. Globalement, c’est plus difficile pour nous d’aider la personne. Ces bouts de codes créent parfois aussi des bugs très subtiles » ajoute-t-il. Les zombie code peuvent aussi être ramenés à la vie par erreur, causant potentiellement une multitude de problèmes ! Un code truffé de zombies peut aussi gaspiller de la mémoire, des cycles de processeurs et augmenter le temps d’exécution.

Comment les éliminer ?

Comme les zombies sont déjà morts, ce n’est pas facile de les tuer. Et tout comme dans les films…tous les zombies ne se valent pas. Certains sont faciles à identifier et à éliminer tandis que d’autres sont un vrai cauchemar!

Il n’existe pas de solution miracle, sauf peut-être, en évitant de les créer. En effet, beaucoup de zombies sont créés dès le début de l’écriture d’un logiciel. La personne qui écrit le code, par peur de perdre des morceaux ou de tout recommencer à zéro, préfère garder des vestiges de ses différentes versions.

«Si votre code est chaotique et que vous avez du mal à le comprendre vous-même, imaginez quand vous le partagez avec une personne qui ne l’a pas écrite. C’est totalement déroutant.» précise notre analyste.

À la chasse aux zombies !

Notre analyste s’est prêté au jeu. Il vous propose un exemple de (très mauvais) code en C, mais qui pourtant compile et s’exécute…et un code beaucoup plus net.


Les conseils d’un analyste scientifique

C’est facile d’écrire du code, mais ça demande un peu plus de temps et d’énergie d’écrire du bon code. Par contre, sur le long terme c’est indispensable ! 

– Utilisez de bonnes pratiques de génie logiciel

– Nettoyer votre code de tout ce qui n’est pas nécessaire

– Documentez votre code

– Utilisez un bon logiciel de gestion des révisions. Vous pourrez ainsi garder votre code lisible tout en gardant des traces. À Calcul Québec, nous proposons régulièrement des formations pour débutants, dont parfois un atelier GIT 


À propos de cet article

Cet article a été écrit en collaboration, et révisé, par un expert en calcul informatique de point.

Daniel Stubbs a fait des études en mathématiques à l’université de Toronto et à l’université de Western, où il a obtenu son doctorat en 2000. Il a ensuite travaillé comme programmeur scientifique dans une entreprise pharmaceutique avant de devenir analyste en calcul scientifique à l’université McMaster (SHARCNet) et, à partir de 2005, à l’université de Montréal (Calcul Québec). Depuis quelques années il est un des analystes de Calcul Québec en charge du soutien aux usagers.