Developpez.com

Le Club des Développeurs et IT Pro

Quel est le code dont vous êtes le plus fier ?

Pourquoi l'avez-vous écrit ? Et pourquoi vous a-t-il donné autant de satisfaction ?

Le 2011-06-01 13:52:23, par Gordon Fowler, Expert éminent sénior
Récemment, un ami développeur me confiait à la terrasse d'un café la fierté qu'il avait ressenti d'avoir réalisé son premier code avec sa fille.

Le programme n'avait rien de complexe ni de révolutionnaire, mais de voir son enfant créer une mini-application (un jeu très basique en Java) lui avait procuré une joie immense et beaucoup plus de satisfaction que lors de ses habituelles réalisations complexes et sur mesure pour des services financiers ou des opérations de reportings de grand envergure.

Cette petite anecdote montre bien que le développement n'est pas uniquement affaire de complexité ou de performance du code.

Souvent, la fierté vient d'une réussite modeste (comme un premier code fait tout seul), commune mais difficile (comme tenir un délai) ou de la « beauté » (forcément subjective) du résultat.

Un membre de la rédaction de Développez (Idelways pour ne pas le citer) expliquait ainsi que le code dont il était le plus fière était « un middleware fait pour assurer l’interopérabilité entre deux systèmes de gestion d'un parc de réparation radicalement différents, mais qui devaient interagir à tout prix. C'était super car ça n'a pris après refactoring qu'une table de correspondance et 20 lignes de code. C'était élégant, efficace et ça pouvait être lu en un seul écran ».

Source de fierté professionnelle supplémentaire, cette solution est en production, sans faillir, depuis bientôt 5 ans.

Quelquefois, la fierté vient du fait d'être arrivé à dépasser les contraintes techniques, comme les limitations du réseau. Et de le faire dans des délais courts.

« Le code source dont je suis le plus fier portait sur l’implémentation d’une méthode de décompression/compression des transactions d’un web service développé en C#. Après pas mal de recherches, nous avons décidé d’utiliser la bibliothèque C # open source CsharpZipLib qui a permis d’implémenter cela assez rapidement », raconte Hinault Romaric, lui aussi membre de la rédaction de Développez. « Ce code a été écrit dans le cadre du développement d’un service web dont les données devaient être échangées sous un format XML. La quantité de données transmises dans une requête était parfois très importante, et on avait des temps de réponse assez longs et une surcharge assez importante de la bande passante. Le résultat a été très satisfaisant. Avec les très bas débits que nous avions dans cette sous région du Cameroun, c'était un facteur très important pour la réussite du projet ».

Trois exemples parmi d'autres qui rappellent aussi que le métier de développeur possède un avantage sur beaucoup d'autres : il est affaire de créativité.

Et par conséquent, de fiertés potentielles.

Et vous, quel est le code dont vous êtes le plus fier ? Dans quel cadre l'avez-vous écrit ? Et pourquoi vous a-t-il donné autant de satisfaction ?
  Discussion forum
95 commentaires
  • GreatTux
    Membre actif
    Le code de la route. Premier coup.
  • Aiekick
    Membre extrêmement actif
    moi le code dont je suis le plus fier c'est mon premier "hello world"

    Je n'ai plus quitté ce "world" ^^
  • jpelaho
    Membre confirmé
    On ressent toujours beaucoup de fierté quand on réalise un code :
    - Qui marche
    - Qui est utilisé par beaucoup de personnes
    - Qui travaille sur une volumétrie importante de données
    - Qui optimise le temps de travail des utilisateurs.

    C’est ce que j’ai ressenti lors du développement d’un logiciel de calcul de la paie dans une assez grosse société (plus de 5000 employés)
  • pseudocode
    Rédacteur
    Le 1er code dont je garde souvenir c'est du basic TO7, et ca déplacait une chenille horizontalement sur l'ecran.
    Code :
    1
    2
    3
    4
    5
    6
    10 CLS
    20 FOR i = 1 TO 30
    30 LOCATE i,1
    40 PRINT " ooooO"
    50 BEEP
    60 NEXT i
    Par la suite, en suivant les époques, je garde en mémoire des jeux style "aigle d'or" en basic CPC/GFA, des démos en asm68000, et un raytracer en C.

    Ensuite, j'ai vraiment commencé à programmer "efficacement" et la notion de fierté a quelque peu disparue, remplacée par la satisfaction du devoir accompli.
  • Rayek
    Modérateur
    Cela ne sera pas le code, mais les codes que je fournis parfois pour aider certain qui sont bloqués sur ces mêmes forums et qui nous gratifie de remerciement en retour.
  • el_slapper
    Expert éminent sénior
    un outil de reformatage d'enregistrements. Rien de palpitant, hein? 18 flux en entrée, 18 flux en sortie, une spec qui dit "si telle valeur en entrée, mettre telle valeur en sortie". Rien de palpitant?

    Sauf que la manière dont on m'a demandé de le faire, elle, sortait de l'ordinaire :

    "_Slap, on a un problème. Il ya un programme qu'on a oublié de faire. On l'avait chiffré à 10 jours. Manque de pot, ça doit tourner dans deux jours.
    _C'est quoi?
    _Il faut retransformer les données du nouveau format vers l'ancien. Parceque les DOMTOM ne migrent pas et attendent l'ancien format, encore et toujours. On a 18 flux avec 18 formats différents. Mais bon, si tu peux faire les 3 flux principaux en 2 jours, on survivra.
    _En faire 3? L'un après l'autre? En 2 jours? Impossible!
    _Il le faut, pourtant!
    _J'insiste, c'est impossible. Par contre, faire les 18 d'un coup avec mutualisation des traitements, ça, c'est possible.
    _Euh, tu est sur?
    _C'est notre seule chance.
    _Bon, de toutes façons, on a personne d'autre, on est obligés de te faire confiance."

    Et ça a marché. Bon, j'ai du violer quelques règles. Notemment, j'ai mis le référentiel de définition des formats de flux en dur dans le programme, tout simplement parcequ'en 2 jours, je n'aurais même pas eu le temps de faire la paperasserie pour demander la mise en intégration du nouveau référentiel(je ne parle même pas de la prod), alors qu'on m'autorisait à livrer le programme (et son script d'execution) en urgence.

    Mais, à ma grande surprise, c'est un des codes les plus propres et les plus lisibles que j'ai eu l'occasion de livrer. Semble-t-il, sous la pression, j'ai été forçé de bosser bien.
  • istace.emmanuel
    Membre actif
    en première année d'info de gestion, premier examen de procédural en C.
    Il fallait faire un programme de gestion de contacts clients. Ai du recommencer le projet 3jours avant la livraison et ai réussi a faire un vrai moteur de bdd avec :
    - des hashmap en plaintext
    - un interpréteur de commande
    - multi session
    - multi db
    - système de queue sur les requête
    - système modulaire et communication via des pipes
    - schema des tables modifiables
    - requête dans un langage proche du SQL
    - Gestion dynamique de la mémoire via un mini garbage collector home made
    bref, sur les 3 jours ai dormis a peine quelques heures et ai ecrit les dernières lignes de code 1H avant l'examen.

    Quand je l'ai rendu le prof m'a dis :
    "C'est un application professionnel, tout a fait acceptable en entreprise, tu me rend ça en 3éme avec une IHM graphique et non en CLI et tu as une grande distinction sur ton mémoire" et j’étaie alors seulement en 1ére.

    J'ai fait des tests après, je pouvais monter jusqu’à 300Go de données avant de "planter".(les requêtes devenait beaucoup trop long) Niveau nombre de requête ai pas réussi a le mettre a genoux sur un quad core a 4Ghz et 4go de ram DDR3.

    Je m'en souviendrai encore dans 30ans je pense !
  • Paul TOTH
    Expert éminent sénior
    moi je suis très fier d'avoir inventé un portal engine...bon c'était pas une nouveauté - même à l'époque - mais je ne savais pas que ça existait et je l'ai réinventé

    pour la petite histoire, je codais en Turbo Pascal un moteur 3D software (avant l'avènement des cartes 3D) et j'étais aux toilettes à regarder les murs quand soudain il m'est apparu que le couloir n'était visible qu'à travers la porte ! il était donc totalement inutile d'en faire le rendu si la porte n'était pas visible à l'écran ! de même il fallait que la porte donnant sur la cuisine soit visible à travers cette porte pour devoir faire le rendu de la cuisine !

    un petit coin, une grande idée

  • shadowmoon
    Membre émérite
    Envoyé par Saverok

    savoir "quand quelqu'un modifie une donnée" est une information extrêmement importance pour l'analyse d'un bug ou d'une situation
    ...
    Du coup, avoir l'historique de la modification de la donnée prend tout son sens.
    Je suis d'accord avec toi Saverok sur l'utilité de l'historisation des modifications des données. Savoir qui a fait quoi et à quel moment est en effet important en cas de soucis.

    Par contre

    Envoyé par chanyslas

    En ce moment, je code un logger d'activités Back/Front, pour que les collaborateurs de notre client puissent se dénoncer les uns les autres et se renvoyer la balle des responsabilités
    ...
    Sur ce point précis je comprends chanyslas. A mon avis ce n'est pas normal que tous les employés aient accès à ces données, c'est une "porte ouverte" à la délation et autres "coup-bas".

    Je pense que seuls les responsables / chefs / gestionnaires ... d'équipe / de projet / de production ... devraient être en mesure de consulter ces données.
  • Hellwing
    Membre chevronné
    Le code dont je suis le plus fier est une feuille de style XSL-FO particulièrement complexe transformant un flux XML organisé de manière incompréhensible (et indépendant de ma volonté)

    Le document PDF qui en résultait devait afficher des articles (avec photo, caractéristiques, etc.) triés par famille/sous-famille sous forme d'un damier de 8 cases de large, le tout avec une version archaïque de FOP (0.92, je crois).

    La demande initiale étant particulièrement complexe, je suis fier d'avoir réussi à atteindre les objectifs en un seul mois, compte tenu des faibles outils à ma disposition.