|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Inscription : juillet 2009 Messages : 2 727 ![]() |
Quel est le pire bout de code que vous ayez jamais écrit ?
En avez-vous eu honte et pourquoi ? 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 ? |
|
|
30
|
|
|
#2 |
|
Membre Expert
![]() Développeur C Inscription : août 2004 Messages : 1 458 ![]() |
Le pire que j'ai fait ? Euhhh ...
C'est lié un bug incompréhensible sur une synchro multithread en C. Seule solution trouvée : ajouter une trace dans la console (printf).
|
|
|
11
|
|
|
#3 |
|
Membre régulier
![]() Inscription : mai 2009 Messages : 57 ![]() |
soit positif ou non ...
|
|
|
21
|
|
|
#4 |
|
Membre confirmé
![]() |
Le pire code que j'ai fait , c'est pendant mon tous premier stage en .NET y'a 4ans pour une ecole . j'ai du ecrire le code SQL de creation des tables en dure et qui s'execute ligne par ligne ., le tous sans aucune clef primaire ni etrangere . je n'avais pas cette notions mais je savais instinctivement qu'il ne fallais pas faire des operations d'ajout et de suppresion a l'arrache , alors j'ai moi meme cree des classes pour faire le travail du SGBD et verifier ces contrainte par code . et comme j'utilisais MySql pour faire un backup de la table j'ai du ecrire un programme en C++ pour executer des lignes de commandes sur console ( C# ne peut pas le faire a ma connaissance , car j'ai esseye et demandé ) .
c'est sur que y'a un apres , mais sa me reconforte tellement de voir le niveau ou j'etais et comment je pensais par rapport a aujourdui , mais on passe tous par la |
|
|
02
|
|
|
#5 | ||
|
Membre Expert
![]() Thomas DelapierreIngénieur développement logiciels Inscription : avril 2008 Messages : 456 ![]() |
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 :
J'ai sans doute dû faire plus horrible comme code depuis, mais celui-ci est mon souvenir le plus mémorable ^^ |
||
|
|
91
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2002 Messages : 16 ![]() |
En stage de première année, j'ai du ajouter des traces-logs d'informations dans un programme existant ... j'ai du copier/coller des centaines de fois le même bout de code pour écrire dans le log ...
Sinon je fais encore de temps en temps un si (condition OU vrai) Pour tester des morceaux de code pendant les développements. Mais généralement je pense à claquer un //TODO au dessus. |
|
|
30
|
|
|
#7 |
![]() ![]() Adrien MarieDéveloppeur .NET Inscription : juin 2009 Messages : 2 028 ![]() |
|
|
|
52
|
|
|
#8 | |
|
Membre confirmé
![]() |
Citation:
|
|
|
|
72
|
|
|
#9 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
Le pire bout de code que j'ai du écrire date de seulement trois mois.
1. Rechercher manuellement un message utilisateur dans toutes les langues et trouver un groupe de lettres commun à tous ces messages mais inexistant dans d'autres messages. 2. Attraper le message lorsqu'il est envoyé afin de mettre éventuellement un booléen à vrai 3. Utiliser le booléen plus tard pour décider d'envoyer ou non un autre message. Pourquoi ce code ? Parce que nous n'avons (oui, au présent : il n'est pas encore corrigé, ce problème) pas de possibilité de découvrir le type de message recherché par nous même : on nous envoie 3 informations, l'une d'elle est celle qu'on cherche, mais les 3 ne sont jamais dans le même ordre. Les messages, eux, sont correctement placés dans la base de données. On a interdit aux gars du business de changer les messages sans notre accord préalable à cause de ce problème. Heureusement, le projet pour fixer cela arrive. Ouf ! Dépendre ainsi des messages utilisateurs qui peuvent changer à tout moment m'angoisse comme c'est pas possible ! |
|
|
01
|
|
|
#10 |
|
Membre confirmé
![]() Développeur informatique Inscription : février 2006 Messages : 359 ![]() |
en entrer de méthode j'ai mis
|
|
|
61
|
|
|
#11 | ||
|
Membre chevronné
![]() Développeur Web Inscription : décembre 2004 Messages : 636 ![]() |
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 :
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".
__________________
Ne cliquez pas sur ce lien |
||
|
|
81
|
|
|
#12 |
|
Membre Expert
![]() ![]() Inscription : juillet 2006 Messages : 757 ![]() |
En PHP, au lieu de tester si la méthode d'une entité existe, j'ai fait un Try/Catch. Il me restait deux heures avant de livrer le projet et je ne savais pas comment faire ce test dans ce fichu langage. Je ne sais d'ailleurs toujours pas
![]() J'ai pas honte, parce que j'ai gentiment mis une note dans le document de dette technique.
__________________
Robusta Web Library : Clients RESTful open source pour Java, Android & GWT. API Simple et Productive. Avec style. |
|
|
31
|
|
|
#13 | |
|
Membre expérimenté
![]() ![]() Inscription : septembre 2004 Messages : 369 ![]() |
Citation:
__________________
http://www.neaticons.com png glyphs and icons for website and application developpers. http://www.pocketmt.com GLCD Font Creator home site. |
|
|
|
21
|
|
|
#14 |
|
Membre éclairé
![]() Étudiant Inscription : novembre 2010 Messages : 232 ![]() |
au lieu d'un simple
J'étais fatigué quand j'ai écrit ça. Je vous dis pas ma tête quand le lendemain je suis retombé dessus.
__________________
"L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein ---------------------- T.O.A.O 6-MarViN |
|
|
101
|
|
|
#15 | |
|
Membre chevronné
![]() Développeur informatique Inscription : avril 2009 Messages : 272 ![]() |
Citation:
|
|
|
|
20
|
|
|
#16 |
|
Membre chevronné
![]() Inscription : mars 2011 Messages : 431 ![]() |
Un vendredi soir, une fonction de tri sur un std::vector en o(n^3) (sisi, c'est possible...)
Le lundi matin en arrivant je me suis souvenu que la fonction std::sort existait...
__________________
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. - Antoine de Saint-Exupéry |
|
|
30
|
|
|
#17 |
|
Membre confirmé
![]() Développeur informatique Inscription : octobre 2005 Messages : 142 ![]() |
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... |
|
|
50
|
|
|
#18 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 225 ![]() |
Ma premiére appli pro.
Je n'avais jamais fait de vrai dev pro et donc entre la bd (access évidemment), les tables sans index, les requêtes codées en dur et les écrans multicolors (en dehors des icones bart simpson). Le pire c'est qu'elle est en prod et fonctionne tous les jours... ![]()
|
|
|
12
|
|
|
#19 |
|
Membre du Club
![]() Tuatini GODARDDéveloppeur Java Inscription : décembre 2010 Messages : 68 ![]() |
int pasBien;
int * maladie; int q = sizeof(maladie) * 5; if(pasBien){ maladie = (* int) malloc(q); }
|
|
|
02
|
|
|
#20 | |
|
Membre confirmé
![]() Inscription : octobre 2010 Messages : 37 ![]() |
J'ai lu dans le code d'un enseignant en école d'ingénieur :
Citation:
|
|
|
|
72
|
Copyright © 2000-2012 - www.developpez.com