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. #321
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    Question bête qui m'est arrivée la semaine dernière (un peu dans le même style), comment convertir true/false en oui/non, pour l'afficher? J'ai été obligé de faire un test if machin return oui sinon non
    dam's

  2. #322
    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 dams78 Voir le message
    Question bête qui m'est arrivée la semaine dernière (un peu dans le même style), comment convertir true/false en oui/non, pour l'afficher? J'ai été obligé de faire un test if machin return oui sinon non
    En C ou en C++, j'utilise un opérateur ternaire pour ma part.
    En Delphi, j'utilise un tableau constant de chaînes indicé par un booléen.
    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. #323
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 928
    Points
    928
    Par défaut
    Citation Envoyé par dams78 Voir le message
    Question bête qui m'est arrivée la semaine dernière (un peu dans le même style), comment convertir true/false en oui/non, pour l'afficher? J'ai été obligé de faire un test if machin return oui sinon non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let string_of_bool b = if b then "vrai" else "faux"
    pourquoi tu cherches plus simples ?

  4. #324
    Membre expert
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 3 100
    Points
    3 100
    Par défaut
    c'était par curiosité, on ne pense pas toujours à la meilleure solution
    dam's

  5. #325
    Membre confirmé Avatar de gmotw
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 384
    Points : 641
    Points
    641
    Par défaut
    Ça dépend aussi du contexte. Si c'est pour un gros bouzin, un fichier properties avec le reste de l'internationalisation, sinon le classique varBool?"oui":"non"
    THIS!IS!NOT!MY!COW!

    CECI!N'EST!PAS!MA!VACHE!
    (mais je persiste à dire que c'est moins classe en français )

  6. #326
    Membre éclairé Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Points : 723
    Points
    723
    Par défaut
    Vu récement dans une app:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void ma_fonction_2(void)
    {
       blablabla
       ma_fonction();
       blablabla    
    }
    
    void ma_fonction(void)
    {
       blablabla
       ma_fonction_2(void);
       blablabla
       return ;
    }
    je crois qu'il debug encore aujourd'hui ...

    Une autre plus pernicieuse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $erreur = 1;
    blabla blabla
    if (une_erreur)
        $erreur 
    blabla blabla
    (beaucoup plus bas)
    $erreur = $erreur - 1;
    (php qui vérifie pas le typage :p)

    Dans les deux cas, c'est réalisé par "des experts" senior avec beaucoup d'année de boite.
    “La seule révolution possible, c'est d'essayer de s'améliorer soi-même, en espérant que les autres fassent la même démarche. Le monde ira mieux alors.”

  7. #327
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 928
    Points
    928
    Par défaut
    Citation Envoyé par sloshy Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void ma_fonction_2(void)
    {
       blablabla
       ma_fonction();
       blablabla    
    }
    
    void ma_fonction(void)
    {
       blablabla
       ma_fonction_2(void);
       blablabla
       return ;
    }
    Si dans les blabla, il y a des tests, ça s'appelle des fonctions mutuellement récursive, et ça n'a jamais été du code "horrible".

    Après si dans les deux cas ça appelle systématiquement l'autre fonction et que ça fait quelque chose après le retour de l'autre fonction, y a moyen que ce soit un beau bug. De là à appeler ça un code horrible...

  8. #328
    Membre confirmé
    Avatar de jpelaho
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 120
    Points : 487
    Points
    487
    Par défaut
    Citation Envoyé par adiGuba Voir le message

    En ce qui concerne Java il est bien plus pratique d'utiliser le if(true/false) :
    • Comme il s'agit d'une constante, le if n'existera plus après la compilation.
      En clair le if(true){ } est remplacé par un bloc de code, et le if(false) {} sera tout simplement supprimé.

    Est ce que ceci est valable pour C# et .NET ?

  9. #329
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 65
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par argonath Voir le message
    Aujourd'hui, je dois intégrer quelques classes java d'un collègue dans le projet global.

    au milieu je trouve cette perle "OuiNon.java"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public enum OuiNon
    {
    	Oui, Non
    }
    booléens... première leçon de tout cours d'info non ?
    Ça me rappelle dans une de mes anciennes boîtes : une table sql "tb_ouinon" ne contenant que deux champs ("oui" et "non" vous l'aurez compris)...

    http://cocoa-notes.net - Développement sur Mac, iPhone & iPad

  10. #330
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Citation Envoyé par Thierry B. Voir le message
    Ca me rappelle dans une de mes anciennes boîtes : une table sql "tb_ouinon" ne contenant que deux champs ("oui" et "non" vous l'aurez compris)...

    C'est évolutif: tu peux rajouter après coup "Peut-être", "ne sait pas", "n'a pas compris la question"

    edit: ah oui mais en fait pour rester propre il faudrait renommer la table...
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  11. #331
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jpelaho Voir le message
    Est ce que ceci est valable pour C# et .NET ?
    Il y a de forte chance (au niveau du compilateur ce n'est pas vraiment difficile à implémenter) mais je ne peux pas l'affirmer car je ne connais pas vraiment le langage.

    a++

  12. #332
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par DrHelmut Voir le message
    en java, fait par un 'expert' sur une appli que j'ai débogué il y a deux ans.

    Tellement énorme que je m'en rappelle encore, ça donnait à peu près ça :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public String removeForbiddenChar(String input) {
     
     String ouput="";
     String[] s = input.split(";");
     for(int i=0; i<s.length;i++) {
      s[i].replace(";","");
      output+=s[i];
     }
     return ouput;
    }
    T'es sérieux ?

  13. #333
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par Auteur Voir le message
    Quand j'ai repris un projet sous C++ builder j'ai découvert dans chaque fonction du projet des déclarations de la forme :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    entier a, b, c;
    chaine nom, prenom;



    Et après avoir longuement cherché (le projet possédait plus d'une centaine de fichiers) j'ai découvert dans un fichier C++ bien caché ceci :
    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        typedef int entier;
        typedef AnsiString chaine;
    Bref, chaque type C++Builder avait été francisé
    Sa c'est tres tres fort lol

  14. #334
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par fcharton Voir le message
    Ce code là peut apparaitre assez naturellement dans deux situations...

    1- en prévision d'un second cas, pour en marquer la place... (normalement il faudrait mettre un commentaire, quand même), ou pour pouvoir facilement éliminer la boucle ( if(0) )
    2- après la suppression d'un else, un jour de presse, pour éviter des conflits de noms avec des variables locales au if()...

    Ce n'est pas gracieux gracieux, mais comme ça disparait à la compilation, et que ça ne pose aucun problème de compréhension...

    Francois
    Je me posais aussi des questions dessus, merci à toi !

  15. #335
    Membre du Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Février 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2010
    Messages : 58
    Points : 44
    Points
    44
    Par défaut
    "Hello World" en C/C++, Java, Python, Perl, FreePascal
    ce micro bout de code annonçait pour moi une souffrance de plusieurs heures.....
    Cedric

  16. #336
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut rien ( à dire )
    Sous Unix / Kornshell un
    pour indiquer que la variable est vide ...
    Et derrière comme la gestion des variables est bien foutue, on retrouve un appel à dans les logs ...
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  17. #337
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 3
    Points
    3
    Par défaut un chef d'équipe dans une boite de dev. a fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class A extends B {
      
    ..................
     public void methodeA(){
        B b=new B();
        b.uneMethode();
     }
    ...................
    
    }

  18. #338
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 9
    Points
    9
    Par défaut En Java, dans un programme développé from scratch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!(objet.getPropriete() != null)) {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private boolean isTrue(String chaine) {
        boolean bool = false;
        if (chaine.equalsIgnoreCase(IConstante.YES) {
            bool = true;
        } else {
            bool = false;
        }
        return bool;
    }
    (C'est du java et c'était pas les mêmes noms mais l'idée est là).

    Développé par un prestataire expérimenté, sur un code from scratch...
    On s'est demandé lors de la revue de code, s'il était vraiment tordu, s'il s'est loupé dans un copier / coller, ou s'il l'avait fait exprès (hypothèse du codeur double payé par la concurrence).

    Entre ça, l'indentation aléatoire, le manque total de commentaires et l'utilisation du modèle objet qui donnait l'impression qu'il n'avait jamais fait que du C avant de venir... son code est un bijou du genre.

    Il a été remercié depuis, ça vous étonne ?

  19. #339
    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
    Il a été remercié depuis, ça vous étonne ?
    Si c'est pour des fautes répétées et grave oui, si c'est pour des fragments de code comme ci-dessus qui sont par ailleurs fonctionnels, je trouve çà abusif.
    Vous auriez pû lui montrer le chemin

  20. #340
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 4
    Points : 9
    Points
    9
    Par défaut
    "Remercié" = "son contrat était arrivé à échéance et n'a pas été renouvelé contrairement à ce qui avait été prévu au début" dans ce cas précis.

    Sur un projet de redéveloppement total d'appli, on ne fait pas appel à un prestataire expérimenté (avec le salaire qui va avec) pour qu'il nous ponde un truc qui a le même défaut que la version d'origine, i.e. impossible à maintenir et sous-optimisé.

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