Quel est le pire bout de code que vous ayez écrit ?
En avez-vous eu honte et pourquoi ?
Le 2011-09-27 13:26:45, par Gordon Fowler, Expert éminent sénior
Un professionnel sérieux se reconnaît au fait qu'il sait évaluer son travail et reconnaître ses erreurs.
Autrement dit, un développeur réfléchi est celui qui sait quand il écrit un code efficace, ou beau et qui répond aux besoins de l'utilisateur ou du client. Mais il sait aussi quand c'est exactement le contraire.
Ihssen, développeur web et membre de la rédaction de Developpez.com, n'a par exemple pas mis longtemps à avouer, non sans une certaine gêne, avoir écrit une application Web communautaire, riche en fonctionnalités... « mais sans avoir la moindre idée sur le concept de jointures en SQL ».
« Pour chaque liste d'affichage, les scripts empilaient donc une ou plusieurs requêtes supplémentaires pour chaque ligne issue de la requête principale. N + 1 était la règle, mais sur plusieurs modules on pouvait trouver des tas de requêtes de type N * M + 1 », explique-t-il.
Au final le site a pourtant fonctionné d'une manière plutôt robuste durant plusieurs années, « mais son serveur dédié a du souffrir. Heureusement qu'il y avait de la pagination ! ».
Autre horreur, Hinault Romaric, lui aussi rédacteur sur Developpez.com, se souvient que « son pire code était pour une petite application de gestion dans le cadre d’un premier stage en entreprise. Le code était bourré des concaténations de chaînes pour les requêtes SQL et de déclarations de variables sans aucune normalisation. Il n’était pas du tout optimisé (utilisation par exemple des if où des switch auraient été suffisants) et encore moins commenté».
Et de conclure « lorsque je tombe parfois sur ce code dans mes archives, il me fait aujourd'hui bien rigoler ». Mais pas à l'époque.
Après avoir abordé le sujet des pires bouts de code que vous ayez vus, et les développements dont vous êtes le plus fier, il nous a paru juste et légitime de vous demander aujourd'hui de confesser vos petites hontes.
Alors, vous ? C'était quoi votre pire bout de code ?
Autrement dit, un développeur réfléchi est celui qui sait quand il écrit un code efficace, ou beau et qui répond aux besoins de l'utilisateur ou du client. Mais il sait aussi quand c'est exactement le contraire.
Ihssen, développeur web et membre de la rédaction de Developpez.com, n'a par exemple pas mis longtemps à avouer, non sans une certaine gêne, avoir écrit une application Web communautaire, riche en fonctionnalités... « mais sans avoir la moindre idée sur le concept de jointures en SQL ».
« Pour chaque liste d'affichage, les scripts empilaient donc une ou plusieurs requêtes supplémentaires pour chaque ligne issue de la requête principale. N + 1 était la règle, mais sur plusieurs modules on pouvait trouver des tas de requêtes de type N * M + 1 », explique-t-il.
Au final le site a pourtant fonctionné d'une manière plutôt robuste durant plusieurs années, « mais son serveur dédié a du souffrir. Heureusement qu'il y avait de la pagination ! ».
Autre horreur, Hinault Romaric, lui aussi rédacteur sur Developpez.com, se souvient que « son pire code était pour une petite application de gestion dans le cadre d’un premier stage en entreprise. Le code était bourré des concaténations de chaînes pour les requêtes SQL et de déclarations de variables sans aucune normalisation. Il n’était pas du tout optimisé (utilisation par exemple des if où des switch auraient été suffisants) et encore moins commenté».
Et de conclure « lorsque je tombe parfois sur ce code dans mes archives, il me fait aujourd'hui bien rigoler ». Mais pas à l'époque.
Après avoir abordé le sujet des pires bouts de code que vous ayez vus, et les développements dont vous êtes le plus fier, il nous a paru juste et légitime de vous demander aujourd'hui de confesser vos petites hontes.
Alors, vous ? C'était quoi votre pire bout de code ?
-
6-MarViNMembre confirmé
Code : for (i = 0; i < j; ++i);
Code : i = j;
le 27/09/2011 à 15:16 -
HellwingMembre chevronnéJe me souviens d'un petit bout de code plus ridicule que horrible écrit lorsque j'étais encore étudiant.
J'avais écris une méthode qui prenait en paramètre un Booléen et renvoyait un booléen selon le code suivant :
Code : 1
2
3
4Si le booléen est vrai alors je renvoie faux Si le booléen est faux alors je renvoie vrai
J'ai sans doute dû faire plus horrible comme code depuis, mais celui-ci est mon souvenir le plus mémorable ^^le 27/09/2011 à 14:00 -
Hervé SaladinMembre éclairéMon pire code c'est lorsque j'ai débuté la prog en total autodidacte étant ado (il y a entre 15 et 20 ans).
J'avais un Thompson TO8 (il était déjà vieux pour son époque) qui se programmait en BASIC, l'édition du code lui-même se faisait en lignes de commandes car je n'avait pas d'éditeur de texte, je n'avais pas la moindre notion d'algo ni d'informatique en général, j'ai appris tout seul par jeu de façon empirique en modifiant des programmes existant pour voir ce que ça fait et en lisant le manuel utilisateur de l'ordi.
Résultat : je me suis inventé ma propre "méthode" (hum) de programmation et quand j'ai commencé à me sentir un peu plus à l'aise, j'ai créé à partir de 0 un jeu de Jackpot avec une interface graphique représentant une machine à sous avec ses symoles qui défilent, et même une animation du bras du "bandit manchot".
Le tout tenait dans un seul fichier .bas de code BASIC brut qui devait faire 1000 ou 2000 lignes numérotées (de 10 en 10 pour laisser de la place au cas où il faille par la suite insérer une ligne entre les deux), ne contenait pas la moindre fonction ni procédure ni la moindre boucle for ou while, ni de else ... toutes ces structures dont j'ignorais l'existence étaient remplacées par des test simples avec du renvoi brutal à grand renfort de GOTO du genre :
Code : 1
2
3
4100 A=1 110 PRINT A 120 A=A+1 130 IF A<10 GOTO 100
Pas non plus d'expression booléenne comprenant plus d'un test (pas de ET ni de OU), et toutes les variables étaient nommées A,B,C et ainsi de suite ... et le pire c'est que ça marchait et même plutôt bien et que j'étais capable de m'y retrouver dans mon code !
Avec du recul je me demande comment je faisais pour comprendre cet infâme charabia, si je m'y replongeais aujourd'hui je serais incapable de le relire ou de refaire la même chose.
Cela dit même si c'était une horreur je n'en ai pas honte, je suis même plutôt fier d'avoir commencé comme ça parce que je trouve que j'avais quand même du mérite à avoir découvert ça tout seul sans la moindre aide et quasiment sans la moindre documentation, et à m'être suffisamment acharné pour maîtriser ça "à ma façon".le 27/09/2011 à 15:12 -
AiekickMembre extrêmement actifC'était quand j’apprenais en autodidacte la programmation, le c++, les pointeurs, etc....
Je voulais écrire une chaîne de caractères dans un fichier.
Et j’enregistrai caractère par caractère.
C'était lonnnnnnnnnnnnng
Quand j'y repense maintenant je me dit que j'ai progresséle 28/09/2011 à 19:03 -
thorium90Membre avertiHAHAHA +1 j'avoue, c'est ultra sale, ça me rappelle la signature d'un membre de développez.com que j'adore :
Code : #define true perhaps
le 28/09/2011 à 19:04 -
J0r_xMembre éclairéRetrouvé dans un vieux programme
Code : 1
2
3IF Majuscule("i") = "I" THEN ...
le 29/09/2011 à 9:38 -
elmcherquiMembre avertic'est assez usuelle comme code , faut juste penser a mettre un break ou un return dedans
, ou bien mettre le thread qui execute cette partie en background . on utilise souvent une boucle infinie pour ecouter des Client TCP le 27/09/2011 à 14:30 -
lastrecrueMembre actifen entrer de méthode j'ai mis
Code : 1
2if(true) throw new Excpetion("a");
le 27/09/2011 à 14:51 -
rt15Membre éclairéJe devais porter une appli C/C++ vers Windows 64 bits.
Le problème est que cette appli nécessitait une XXX.dll propriétaire dispo en 32 bit uniquement (Et exposant une trentaine de fonctions avec la convention d'appel cdecl).
Impossible d'utiliser une dll 32 dans un processus 64. Du coup j'ai fait un wrapper :
appli 64 bit -> dll 64 bit reprenant l'interface de XXX.dll -> Serveur COM en VB6 -> dll 32 bit exposant l'interface de XXX.dll, mais en convention stdcall -> XXX.dll.
Cette usine à gaz est une solution temporaire faite à la va vite en attendant le portage de XXX.dll. Mais depuis je fais des cauchemars en imaginant que cet infâme sandwich puisse malencontreusement partir en production...le 27/09/2011 à 17:32 -
redbullchMembre confirméJ'ai lu dans le code d'un enseignant en école d'ingénieur :
while(nombre >= 256)
{
nombre = nombre % 256;}
le 27/09/2011 à 22:09