IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

« Un bon code est comme une lettre d'amour destinée au prochain développeur qui va le maintenir »


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 971
    Billets dans le blog
    2
    Par défaut « Un bon code est comme une lettre d'amour destinée au prochain développeur qui va le maintenir »
    Un bon code est comme une lettre d'amour destinée au prochain développeur qui va le maintenir, selon Addy Osmani
    L'ingénieur de Google montre les similitudes entre les deux

    Un bon code peut être comparé à une lettre d'amour adressée au prochain développeur qui va le maintenir, estime Addy Osmani. Tout comme une lettre d'amour personnelle et sincère, il pense que le bon code est rédigé avec soin et considération pour le prochain développeur. Il utilise des motifs de conception et des principes pour rendre le code lisible, compréhensible et efficace. Des meilleures pratiques telles que des conventions de nommage appropriées, la modularisation et les commentaires détaillés sont également utilisées pour faciliter la compréhension du code par les autres. De plus, le bon code est testé rigoureusement pour assurer sa performance et sa qualité. Enfin, le bon code reflète l'empathie et le respect du codeur envers ses collègues développeurs et reconnaît que le logiciel est une entité évolutive qui nécessitera des ajustements au fil du temps. Addy Osmani affirme que le bon code est un héritage précieux que les développeurs laissent à ceux qui viennent après eux.

    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. »

    Nom : andy.png
Affichages : 11776
Taille : 245,6 Ko
    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.

    Citation Envoyé par Addy Osmani
    Nous idéalisons souvent la programmation, la présentant comme une forme d'art abstraite, une science, voire une forme de magie. La vérité, cependant, est bien plus pratique et terre-à-terre. Le code, dans son essence, est une forme de communication. Au début de mon livre « Learning JavaScript Design Patterns », je dis que « le bon code est comme une lettre d'amour destinée au prochain développeur qui va le maintenir ». C'est une correspondance intime, d'un développeur à un autre, à travers le temps et l'espace.
    Dans un billet de blog, Addy Osmani explique les caractéristiques communes entre le bon code et une lettre d'amour. « Une lettre d'amour est personnelle, sincère et attentionnée. C'est un témoignage poétique de sentiments, souvent méticuleusement rédigé, dans le but de transmettre des émotions avec précision. Le bon code partage ces caractéristiques », dit-il.

    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.

    Citation Envoyé par Addy Osmani
    « Les motifs ne rendent pas seulement le code évolutif, maintenable et efficace, mais aussi lisible et compréhensible. Ils fournissent un vocabulaire partagé pour les développeurs, leur permettant d'exprimer des conceptions logicielles complexes avec des structures universellement reconnues.

    Par conséquent, le bon code exploite ces motifs de manière stratégique, tout comme un poète expérimenté utiliserait des dispositifs poétiques pour créer de la résonance. Il n'applique pas les motifs simplement pour le plaisir, mais parce qu'ils ajoutent de la valeur à la solution, rendent le code plus compréhensible et garantissent la pérennité de la base de code.

    SOLID, DRY, KISS et YAGNI ne sont pas simplement des principes, mais des pierres angulaires pour créer un bon code. Ils guident un développeur à prendre des décisions judicieuses, à trouver un équilibre entre sous-ingénierie et sur-ingénierie, et finalement, à rédiger une « lettre d'amour » que le destinataire chérit. »
    L'ingénieur de Google aborde également la question des tests en soulignant que tout comme un écrivain relit sa lettre, un développeur devrait faire de même avec son code. « Des tests rigoureux et la pratique du développement piloté par les tests (TDD) sont des indicateurs d'une lettre d'amour soigneusement rédigée. Les tests valident les performances du code dans divers scénarios, révélant les défauts potentiels et les zones d'ombre. La présence d'un framework de test robuste est souvent un témoignage de la qualité du code. »

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    Octobre 2005
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 498
    Billets dans le blog
    1
    Par défaut
    ouf ça change des articles IA

  3. #3
    Membre chevronné Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 165
    Par défaut
    Dommage, mon ESN me paye à écrire des lettres d'insultes

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 066
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    ouf ça change des articles IA
    Pas sûr... Vu que pour certains le prochain développeur sera IA

    Allez faire une lettre d'amour qui touche les sentiments de l'IA

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 143
    Billets dans le blog
    4
    Par défaut
    Ça se tient mais : qui apprécie assez réellement son employeur et emploi pour s'en soucier ?
    Perso, mon court passage en SSII je n'avais aucune attache à mon entreprise, ni à celle où j'étais parachuté. Donc le code que j'écrivais je l'écrivais avant tout pour moi pour apprendre, m'améliorer, et surtout trouver autre chose où m'en aller. Et il était donc probablement, entre autre parce que j'étais junior, juste "good enough".
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    Plutôt que de lettre d'amour, je parlerais plutôt d'héritage.
    Le code c'est ce qu'on laisse à nos collègues et successeurs quand on quitte la boîte. Je n'ai pas envie qu'ils me maudissent après mon départ
    Mais je m'efforce d'écrire du code propre pour moi-même avant tout, avant de me soucier de la reprise par d'autres, car il faut que ne soit pas une galère à maintenir par moi-même... il faut le faire pour soi-même d'abord. Et si on ne s'aime pas soi-même, peut-on aimer les autres

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2022
    Messages : 2
    Par défaut
    Très très belle phrase, "un bon code est comme une lettre d'amour...." c'est tellement vrai. C'est horrible de passer plusieurs jours à chercher de déchiffrer du code

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2024
    Messages : 4
    Par défaut
    Pour ne pas être critiqué, le mieux est de ne pas générer de code
    Il faut bien se dire qu'importe le code présent, les suivants critiqueront le travail effectué pour plein de raisons

Discussions similaires

  1. [Turbo Pascal] Un caractère qui n'est pas une lettre
    Par eldoir dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 14/10/2011, 23h57
  2. Réponses: 4
    Dernier message: 09/09/2009, 07h53
  3. [PHP 5.0] Afficher du code XML comme une page PHP
    Par keaton7 dans le forum Langage
    Réponses: 4
    Dernier message: 02/03/2009, 16h07
  4. [OLEDB] Tout le code est sur une seule ligne
    Par randriano dans le forum Interfaces de programmation
    Réponses: 16
    Dernier message: 21/08/2008, 14h24
  5. [mx2004]Convertir un code ASCII en une lettre
    Par caramel dans le forum Flash
    Réponses: 3
    Dernier message: 28/01/2004, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo