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

Actualités Discussion :

Le pire bout de code que vous ayez vu

  1. #281
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par othebault Voir le message
    Mode séquentiel en Pascal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
      idx:integer;
    begin
      for idx:=1 to 10 do
      begin
        case idx do
        1:begin.....end;
        2:begin.....end;
    // et ainsi de suite, un traitement pour chaque valeur de idx
        10:begin...;end;
        end;
      end;
    J'ai supposé que c'était conçu pour distraire le mainteneur...
    Notez que c'est pas si con, (en delphi je sais pas mais en C ça pourrait limite avoir une utilité de programmer comme ça)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (i=0; i<10;i++) {
      case i=0: print "1";
      case i=1: print "2";
      ...
      case i=9: print "9";
    }
    devrait sortir un truc genre
    123456789234567893456789456789567896789789899

    J'en vois pas vraiment l'utilité mais en tout cas c'est pas pareil que d'écrire tout à la suite

  2. #282
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par yobuntu Voir le message
    (en delphi je sais pas mais en C ça pourrait limite avoir une utilité de programmer comme ça)
    Delphi / Pascal ne permet pas de continuer sur le case suivant : si tu préfères, le break est tacite et obligatoire... Dans ce langage précis, ça n'a donc pas de sens réel.
    En C, cela pourrait éventuellement avoir un intérêt d'un point de vue obscurcissement de code, mais d'un point de vue fonctionnel, j'ai des doutes...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #283
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Points : 36
    Points
    36
    Par défaut
    il y a quelques années je bossais en binôme avec un gars responsable de la partie base de données et des DAL de l'appli.

    Une de ses fonctions ne marchant pas je lui envoie une liste de user case à déboguer.

    Le gars ne s'est pas démonté, il a mis le code de la DAL en commentaire et testé chaque cas de tests pour retourner le résultat attendu.

    le pire est lorsqu'il m'a sortit qu'il avait fait ça parce que la proc stoc ne marchait pas!!!?????



    Ce jour là j'ai compris pourquoi dans les tours on ne peut pas ouvrir les fenêtres.


    Dans le même genre le chef de projet lui demande de renommer une table. Il le fait et laisse en l'état les procs stocs.

    Ben oui, on lui avait pas demandé de les modifier également....



    et une dernière.
    Un collègue plutôt développeur ASP. On l'envoi en entretient chez un client. Entretien qui tourne court très vite, le client voulait un développeur JSP.

    le vendeur: ben c'est juste une lettre qui change!

    Ca c'est sûr!

  4. #284
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    y'a quelques semaines j'ai eu droit a :


    j'en suis resté bouche bée...
    notre forum vien d'ouvrir
    si vous aimez photoshop et les manga
    venez nous passer un petit bonjour
    sur www.manga-graph-forum.fr.st

  5. #285
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par heero Voir le message
    y'a quelques semaines j'ai eu droit a :


    j'en suis resté bouche bée...
    Bonsoir,

    D'après wikipédia, ca a un sens, c'est pour créer une null-terminated string

    Today the character has much more significance in C and its derivatives and in many data formats, where it serves as a reserved character used to signify the end of a string[2], often called a null-terminated string[3]. This allows the string to be any length with only the overhead of one byte, while the alternative of storing a count requires either a string length limit of 255 or an overhead of more than one byte.
    Aujourd'hui le caractère (i.e : nul caracter) a plus de signification en C et ses dérivés et ce dans plusieurs formats de données, lorsqu'il est par exemple utilisé en tant que caractère réservé dans une chaine de caractère pour en signifier la fin, c'est le nul-terminated caracter.
    Cela permet d'avoir une chaine de n'importe quelle longueur avec une entête d'un octet, alors que les alternatives pour stocker un compte (?) requièrent une chaine d'une longueur maximale de 255 caractères ou une entête de plus de un octet.


    Ne connaissant que trop peu C je pourrais pas t'en dire plus.

  6. #286
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    D'après wikipédia, ca a un sens, c'est pour créer une null-terminated string
    Non, cela n'a pas de sens... Car strcat va chercher, d'abord, le zéro terminal de la chaîne de destination (str ici), pour ensuite copier l'intégralité de la deuxième chaîne (ici, une chaîne vide, donc). Si str ne possède pas de zéro terminal, tu iras jardiner dans la mémoire.

    Au final, ça se résume à... un NOP ou un plantage.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  7. #287
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Oui, voila.

    Ou bien la chaine fini par un caractère nul, et à ce moment la ça ne sert à rien, ou bien elle ne fini pas par un caractère nul, et la tu fout ta mémoire en vrac, avec divers effets imprévisibles à la clef.

  8. #288
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 39
    Points : 105
    Points
    105
    Par défaut utilisation du While True
    Citation Envoyé par dista Voir le message
    Je dis que le code suivant (qui peut etre tester dans plusieurs langages) ne fait rien, on me dit que la réponse est superficielle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    do break;
    while(true);
    do;
    while(false);
    if(true);
    if(false);
    else;
    for(;true; )break;
    while(true)break;
    Quelle serait la vrai reponse(peut-etre celle, profonde)
    par exemple en vb, même si c'est pas très propre, les 3 formes suivantes sont équivalentes et fonctionnent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Dim i&
    
    i = 0
    Do
      i = i + 1
      If i = 3 Then Exit Do
    Loop
    
    i = 0
    Do While True
      i = i + 1
      If i = 3 Then Exit Do
    Loop
    
    i = 0
    Do
      i = i + 1
      If i = 3 Then Exit Do
    Loop Until False
    quant au While/Wend (valide en VB6), il est encore possible de sortir d'une telle boucle avec un antique Goto suite ^^ (code plutôt vintage)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    While True
      i = i + 1
      If i = 3 Then goto suite
    Wend
    suite:
     ... suite du code
    ou encore moins propre (mais toujours valide), un exit sub, exit function.

  9. #289
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    Citation Envoyé par dista Voir le message
    Je dis que le code suivant (qui peut etre tester dans plusieurs langages) ne fait rien, on me dit que la reponse est superficielle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    do break;
    while(true);
    do;
    while(false);
    if(true);
    if(false);
    else;
    for(;true; )break;
    while(true)break;
    Quelle serait la vrai reponse(peut-etre celle, profonde)
    g++ avec les optimisations activées vire tout ça, donc a priori ça ne fait effectivement rien.

  10. #290
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par spidermario Voir le message
    g++ avec les optimisations activées vire tout ça, donc a priori ça ne fait effectivement rien.
    Mais ça peut aussi te permettre, en debug, de créer une instruction NOP, et de pouvoir poser un point d'arrêt dessus... Je me suis déjà servi de ça pour avoir un point d'arrêt sur une clause "else" - normalement inexistante - , c'est nettement moins violent (et définitif !) qu'une assertion.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  11. #291
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    De la même façon, chez moi, on vire les assertions en mode release, elle ne sont vérifiées qu'en débug.

  12. #292
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par deadalnix Voir le message
    De la même façon, chez moi, on vire les assertions en mode release, elle ne sont vérifiées qu'en débug.
    Bien sûr, mais par défaut, une assertion arrête le programme... Un BP sur un NOP permet de continuer.
    Les cas d'utilisation sont certes rares, mais le jour où c'est nécessaire, t'es content de connaître l'astuce.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  13. #293
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Vu dans du code C :
    strcpy_ ?
    J'ai aussitôt cherché dans les sources la définition de cette bête curieuse et suis tombé sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void strcpy_(char* dest, const char* src)
    {
       strcpy(dest, src);
    }
    OK

  14. #294
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Points : 1 104
    Points
    1 104
    Par défaut
    C'est de l'arnaque en plus, elle ne renvoie rien au lieu d'un char*.

  15. #295
    Invité
    Invité(e)
    Par défaut
    J'ai une fois rencontré:

    if (condition)
    ;
    else {
    faireQuelqueChose();
    }
    Le mec en question avait été un développeur clef d'une boîte où je suis passé, il était très productif et leur a fait gagner beaucoup d'argent.

    Par contre il ne connaissait pas l'opérateur !, il a laissé des montagnes de code inmaintenables en copie-collant les bugs dans différents projets.

  16. #296
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 55
    Points : 23
    Points
    23
    Par défaut
    Le pire que j'ai vu était pendant un projet que je devais réaliser à deux.
    Un style de jeux avec vaisseaux en C.
    Mon binome, ne comprennait apparement rien à ce qu'il faisait.
    Ou alors j'ai manqué quelque chose en C.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct       s_struct
    {
          "/------------------\"
          "|      |      |     |"
          "|      \     /      |"
          "\-------|---|------/"
    }                          t_struct;
    Bref il dessinait le vaissau dans la structure. Je sais pas à quoi il pensait.
    Moi je suis resté bouche bée...

    Edit: Je me rappelle plus du dessin, mais le rendu l'a écrasé. Pardon.

  17. #297
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    je suis un peu honteux quand même ...

    for (int i = 0; i < 10; i++)
    for (int j = 0; j < 10; i++)



    dit tonton pourquoi il boucle ?

  18. #298
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Plusieurs applications commerciales, "sécurisées", que mon collègue et moi même sommes chargés de maintenir, et à l'occasion d'y ajouter de nouvelles fonctionnalités.

    voici un exemple type du code dont sont constitués ces applications :

    fichier index.php :


    echo'
    <div id="auth2_2" style="position:absolute; left:350px; top:250px;
    z-index:2;">

    <form name="FormAuth">

    Mot de passe:<input type="password" name="password" size="40"
    OnKeyUp="go_auth(this.value)" value="">

    </form>

    </div>

    ';

    echo '
    <SCRIPT LANGUAGE="JavaScript">

    document.FormAuth.password.focus();

    function go_auth(vv){

    if(vv=="'.recap_pass.'")

    setTimeout("window.location=\'index2.php\'",1);

    }

    </SCRIPT>

    ';

    //place le focus ou il faut

    echo
    '<SCRIPT>setTimeout("document.FormAuth.elements[0].focus()",100);</SCRIPT>';
    je vous laisse deviner ce qu'il ce passe lorsque l'on appelle directement le fichier index2.php.

    en prime, voici le résultat lorsque l'on lit le code source depuis le navigateur :

    document.FormAuth.password.focus();

    function go_auth(vv){

    if(vv=="test23")

    setTimeout("window.location='index2.php'",1);

    }
    Aujourd'hui, on m'a demandé d'installer "ça" pour un client.

    La direction ne veux pas entendre parler de "refonte" des applications au point que nous envisageons sérieusement de prendre du temps en cachette histoire de corriger ce qui peut l'être.

    La direction considère qu'une semaine est un délai suffisant pour une application, de l'analyse jusqu'à la mise en prod, le tout en étant chargé d'assurer la maintenance matérielle chez un autre client. (avez vous déjà essayé de programmer avec un téléphone sonnant tous les quarts d'heure pour des histoires d'imprimantes ou de mot de passe oublié ?)

    Lorsque nous parlons de sécurité, on nous répond qu'il est peu probable que quelqu'un s'amuse à hacker le serveur.

    Une des méthodes de travail utilisé est de demander une nouvelle application. La base : une vague idée écrite sur un papier brouillon tenant en deux ligne. Puis une fois la chose manipulable par le demandeur, celui-ci s'en sert de base pour demander de nouvelles fonctionnalités. (le résultat : on jette tout, et on recommence)

    Nous sommes désespéré. A l'aide.

    Ps : y'a t-il une section de soutien psychologique sur le forum ?

  19. #299
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Points : 2 548
    Points
    2 548
    Par défaut
    Citation Envoyé par C_edd Voir le message
    Ps : y'a t-il une section de soutien psychologique sur le forum ?
    EMACS propose cette fonctionnalité dans le menu d'aide.

  20. #300
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    EMACS propose cette fonctionnalité dans le menu d'aide.
    M-x doctor pour ceux que ça intéresse.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

Discussions similaires

  1. Quel est le pire bout de code que vous ayez jamais écrit ?
    Par Gordon Fowler dans le forum Débats sur le développement - Le Best Of
    Réponses: 61
    Dernier message: 31/10/2011, 12h18
  2. Quelle est la plus grosse erreur de programmation que vous ayez jamais commise ?
    Par Katleen Erna dans le forum Débats sur le développement - Le Best Of
    Réponses: 138
    Dernier message: 03/08/2011, 23h38
  3. Petit bout de code que je ne saisis pas trop
    Par MeTaLCaM dans le forum C#
    Réponses: 5
    Dernier message: 03/12/2009, 00h07
  4. [Vos débuts] Quel est le premier langage que vous ayez appris ?
    Par Commodore dans le forum La taverne du Club : Humour et divers
    Réponses: 171
    Dernier message: 02/02/2007, 14h43

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