Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quel est le pire bout de code que vous ayez écrit ?
En avez-vous eu honte et pourquoi ?

Le , par Gordon Fowler

22PARTAGES

3  0 
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de 6-MarViN
Membre confirmé https://www.developpez.com
Le 27/09/2011 à 15:16
Code : Sélectionner tout
for (i = 0; i < j; ++i);
au lieu d'un simple
Code : Sélectionner tout
i = j;
J'étais fatigué quand j'ai écrit ça. Je vous dis pas ma tête quand le lendemain je suis retombé dessus.
10  1 
Avatar de Hellwing
Membre chevronné https://www.developpez.com
Le 27/09/2011 à 14:00
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 : Sélectionner tout
1
2
3
4
Si le booléen est vrai
  alors je renvoie faux
Si le booléen est faux
  alors je renvoie vrai
Une méthode juste pour ça.

J'ai sans doute dû faire plus horrible comme code depuis, mais celui-ci est mon souvenir le plus mémorable ^^
9  1 
Avatar de Hervé Saladin
Membre éclairé https://www.developpez.com
Le 27/09/2011 à 15:12
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 : Sélectionner tout
1
2
3
4
100 A=1
110 PRINT A
120 A=A+1
130 IF A<10 GOTO 100
... en fait c'était tellement "brut" avec des instruction tellement simple et décomposées, c'était presque comme de l'assembleur quand j'y repense.
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".
8  1 
Avatar de Aiekick
Membre extrêmement actif https://www.developpez.com
Le 28/09/2011 à 19:03
C'é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é
6  0 
Avatar de thorium90
Membre averti https://www.developpez.com
Le 28/09/2011 à 19:04
Citation Envoyé par pyros Voir le message
#define private public avant d'inclure un .h.

Comme l'a dit un collègue, c'est comme ça qu'on devient délinquant
Le pire c'est qu'on avait cherché, mais on n'avait pas trouvé d'autre solution...
HAHAHA +1 j'avoue, c'est ultra sale, ça me rappelle la signature d'un membre de développez.com que j'adore :

Code : Sélectionner tout
#define true perhaps
C'est telement dôle je trouve
6  0 
Avatar de J0r_x
Membre éclairé https://www.developpez.com
Le 29/09/2011 à 9:38
Retrouvé dans un vieux programme
Code : Sélectionner tout
1
2
3
IF Majuscule("i") = "I" THEN
...
6  0 
Avatar de elmcherqui
Membre averti https://www.developpez.com
Le 27/09/2011 à 14:30
Citation Envoyé par Lapinpanda Voir le message
Code : Sélectionner tout
1
2
3
4
5
6
 
while(true)
{


}
c'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
7  2 
Avatar de lastrecrue
Membre actif https://www.developpez.com
Le 27/09/2011 à 14:51
en entrer de méthode j'ai mis

Code : Sélectionner tout
1
2
if(true)
throw new Excpetion("a");
6  1 
Avatar de rt15
Membre éclairé https://www.developpez.com
Le 27/09/2011 à 17:32
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...
5  0 
Avatar de redbullch
Membre confirmé https://www.developpez.com
Le 27/09/2011 à 22:09
J'ai lu dans le code d'un enseignant en école d'ingénieur :

while(nombre >= 256)
{
nombre = nombre % 256;
}
Je crois qu'il n'avait pas totalement assimilé le concept "reste de la division entière".
7  2