Qu’est-ce qu’un bon code ? C'est une question que tous les développeurs se posent, que ce soit sur ce site ou en entreprise. Mais le sujet mérite toujours d'être abordé, parce que même si intellectuellement, on sait ce qu'est un bon code, dans la pratique il est plus facile d'en créer un mauvais à cause de contraintes qui peuvent être externes. Alors, rappelons ce qu'est un bon code.
Pour faire un récapitulatif, un bon code répond à un ensemble de critères : il doit être lisible et compréhensible, fonctionnel, facilement maintenable, facilement réutilisable, commenté, implémenter, des tests unitaires, etc. La liste n'est pas exhaustive.
Ce qu'il est important de noter, c'est qu'en général, la plupart des développeurs pensent qu'ils écrivent du bon code, jusqu'à ce que leur code doive être relu ou maintenu par un autre. Mais, comme le dit l'informaticien et auteur John Woods, pour avoir un bon code, « il faut coder toujours comme si la personne qui va maintenir le code est un psychopathe qui sait où vous vivez ». Autrement dit, un bon code est celui qui est écrit en pensant à celui qui va le maintenir. C'est le message qu'Addy Osmani essaie de passer en affirmant ceci : « Un bon code est comme une lettre d'amour destinée au prochain développeur qui va le maintenir. »
Addy Osmani
Pour information, Addy Osmani est un ingénieur logiciel chez Google travaillant sur le navigateur Web Chrome. Il est l'auteur de livres tels que « Image Optimization » et « Learning JavaScript Design Patterns ». Il a également créé plusieurs projets open-source tels que Yeoman, TodoMVC, Quicklink et Material Design Lite.
Envoyé par Addy Osmani
Selon l'ingénieur de Google, le bon code est personnel, car il reflète la logique et l'approche du codeur. Il est sincère et dépourvu de complexité inutile. Il est attentionné, car il se soucie du prochain développeur qui va essayer de le comprendre. « Et surtout, il est méticuleusement conçu pour résoudre un problème avec une efficacité maximale. »
Un bon code et une lettre d'amour utiliseraient donc le même langage, mais les similitudes ne s'arrêteraient pas là.
Tout comme l'auteur d'une lettre utilise des règles de grammaire et des structures linguistiques pour encadrer ses mots et ses sentiments en phrases compréhensibles, les développeurs ont des motifs de conception et des principes pour donner forme à leur code.
Envoyé par Addy Osmani
L'empathie et le respect sont aussi des points sur lesquels insiste Addy Osmani. « Au cœur d'une lettre d'amour se trouve l'empathie et le respect pour le destinataire, et il en va de même pour le bon code », dit-il. « Rédiger du code que d'autres peuvent lire, comprendre et maintenir est une forme de respect professionnel. Cela montre que le codeur comprend que son travail fait partie d'un effort plus vaste et continu, que le logiciel est une entité vivante qui évolue, et que de nombreuses mains façonneront son destin au fil du temps. »
Il ne manque pas de faire cas du respect des meilleures pratiques établies. Pour lui, les conventions de nommage appropriées, la modularisation et les commentaires détaillés, entre autres, ne sont pas seulement des règles à suivre, mais ce sont des normes qui définissent à quel point le codeur est attentif envers le prochain développeur.
Addy Osmani essaie de montrer que tous les critères d'un code de bonne qualité peuvent être remplis si seulement l'on fait une seule chose : se soucier des autres développeurs qui vont le maintenir. Le bon code doit donc être notre héritage durable pour ceux qui nous suivent.
Source : Addy Osmani
Et vous ?
Qu'est-ce qu'un bon code pour vous ?
Que pensez-vous de cette comparaison entre un bon code et une lettre d'amour ?
Si vous deviez faire une analyse similaire, à quoi compareriez-vous un bon code ? Pourquoi ?
Voir aussi
Un code open source comportant des jurons dans les commentaires est statistiquement meilleur qu'un code sans jurons, selon une étude
Le contrôle de son code par un collègue permettrait d'en améliorer la qualité et de respecter les délais de livraison, d'après un consultant
Qu'est-ce qu'un bon code ? Une étude tente d'apporter des éléments de réponse