Qu’est-ce qu’un bon code ? À maintes reprises, chacun de nous s’est déjà posé une telle question ou du moins s’est déjà vu poser cette question. Déjà en 2004, Paul Dilascia tentait de répondre à cette même question dans le magazine MSDN. Pour lui, un bon code doit fédérer 8 critères qui sont la simplicité, la lisibilité, la modularité, la séparation des différentes couches fonctionnelles, le design, l’efficacité, l’élégance et la clarté.
L’entreprise IntentHQ qui travaille à apporter des réponses à certaines problématiques a voulu donner également un élément de réponse basé non pas sur une définition personnelle, mais plutôt sur des éléments scientifiques.
Pour y arriver, elle a mis en œuvre une étude de janvier 2014 à janvier 2015 en interrogeant 65 développeurs directement ou par téléphone lors de plusieurs entretiens d’embauche. Les entretiens ont été effectués par la même personne et s’adressaient en général à des personnes ayant de solides compétences en java ou scala avec plus de cinq années d’expérience.
Il faut souligner que même si les réponses peuvent varier d’un individu à un autre, nous sommes d’accord pour affirmer qu’un bon code comporte plusieurs avantages. Il permet par exemple de respecter le cahier de charges, d’éviter certaines erreurs qui rallongeraient les délais de livraison du projet et donc satisfaire ceux qui nous ont mandatés.
Lors de cette étude, deux questions fondamentales ont été posées. À votre avis, qu’est-ce qui participe à bonifier la qualité du code ? Comment définissez-vous un bon code ?
Les réponses à ces questions ont permis de dégager un grand nombre de réalités pouvant être regroupées sous 31 vocables. Bien qu’il soit difficile d’aborder ici tous les ingrédients de qualité relevés par l’étude, nous nous sommes focalisés sur les cinq premiers critères évoqués par les 65 développeurs interrogés. Pour chaque critère, un pourcentage a été obtenu et se présente de la manière suivante :
En première position, nous avons la lisibilité et la compréhension. En effet, 78,46 % des personnes interrogées affirment que le code doit être lisible et compréhensible. Ce qui signifie que 8 personnes sur 10 sont d’accord sur le fait qu’un bon code doit être facile à lire et à comprendre.
En seconde position, nous avons les tests. 29,23 % des développeurs estiment que le code doit être testé ou au moins doit supporter des tests automatisés.
Ce même ratio suggère également que le code doit être fonctionnel.
21,54 % estiment qu’il doit être facile d’appliquer des modifications, des corrections, des ajouts à un code sans en ressentir une perte de performance ou une dégradation de la qualité. En somme, qu’on puisse effectuer aisément la maintenance.
En dehors de ces cinq premiers critères, nous avons entre autres, la présence des commentaires dans le code et le facteur réutilisable. Environ 11 personnes sur les 65 interrogées s’attachent à ces deux critères. Pour plus de détails sur l’ensemble de l’étude, vous pouvez vous référer au tableau suivant.
Il faut noter qu’une corrélation forte existe entre les différents points mentionnés. Par exemple, un code simple, lisible, facile à comprendre favorisera forcément une maintenance plus aisée. À contrario, des heures seront nécessaire pour trouver des erreurs ou pour inclure de nouvelles fonctionnalités dans un code. Et cela est vrai aussi bien pour l’auteur du code que pour une tierce personne travaillant sur le code.
C’est pourquoi IntentHQ, en se basant sur les critères les plus pertinents, c’est-à-dire les cinq premiers en raison de leur évocation par plus de 20 % des interrogés, a défini un bon code comme suit : « un bon code doit être écrit de telle sorte qu’il soit lisible, compréhensible, couvert par des tests automatisés, pas trop compliqué et effectuant parfaitement ce pour quoi il a été écrit ».
En apportant une définition à ce concept, IntentHQ donne ainsi les normes d’un bon code. Nous espérons qu’elle fera l’unanimité et achèvera de clore le débat sur ce sujet.
Source : Blog IntentHQ
Et vous ?
Que pensez-vous de cette étude?
Etes-vous d'accord avec la définition obtenue?
Quelle définition personnelle avez-vous d'un bon code?
Qu'est-ce qu'un bon code ? Une étude tente d'apporter des éléments de réponse
Qu'est-ce qu'un bon code ? Une étude tente d'apporter des éléments de réponse
Le , par Olivier Famien
Une erreur dans cette actualité ? Signalez-nous-la !