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. #361
    Expert confirmé Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Points : 5 277
    Points
    5 277
    Par défaut
    Citation Envoyé par Alain Defrance Voir le message
    24k lignes c'est pas énorme pour un intranet oO

    Je comprends les "" autour de développé
    Mais 24k lignes dans un seul fichier... surtout quand le php est mélangé à du javascript et du HTML. Pour peu que le code ne soit pas commenté, c'est très difficile à reprendre. Parfois, il est plus efficace de repartir à zéro sur des bases saines.
    "tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!"

  2. #362
    Invité
    Invité(e)
    Par défaut
    Je viens de tomber dessus, et vous devinerez jamais où je l'ai trouvé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function widget($args, $instance) {
    		die('function WP_Widget::widget() must be over-ridden in a sub-class.');
    }

  3. #363
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Points : 607
    Points
    607
    Par défaut
    Euh a premiere vue ca me parrait pas choquant, c'est juste une astuce pour pallier au manque du mot clef abstract ou virtual non ?

  4. #364
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    MDR
    Énorme les bouts de code java Oo
    OMG, dire que ça existe ça Oo

    Franchement *shocked*

  5. #365
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Vu ce matin.

    Accrochez-vous bien (les commentaires ont été rajouté par moi pour vous servir ):

    Code sql : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    SELECT @i = 1, @nb = COUNT(*) FROM t1
    WHILE @i <= @nb
    BEGIN
        SELECT @a = a, @b = b, @c = c
        FROM t1
        WHERE d IS NOT NULL
          AND e IS NOT NULL
          AND trait = 'N'
     
        IF @@ROWCOUNT = 0 -- Si aucun resultat
        BEGIN
            SELECT @a = a, @b = b, @c = c
            FROM t1
            WHERE d IS NOT NULL
              AND trait = 'N'
     
     
            IF @@ROWCOUNT = 0 -- Si aucun resultat
            BEGIN
                SELECT @a = a, @b = b, @c = c
                FROM t1
                WHERE e IS NOT NULL
                  AND trait = 'N'
            END
        END
     
        -- Finalement peut importe la ligne choisie (on les traites toutes)
        -- on réalise le même traitement :    
        IF @c IS NULL
            SELECT @c = 1
     
        UPDATE t1 SET b = @b, c = @c, trait = 'O' WHERE a = @a -- <1> :On ecrase les valeurs nulles de b et c
        UPDATE t1 SET c = @c WHERE a = @a AND c IS NULL -- Impossible, c n'est plus NULL (cf <1>)
     
        IF EXISTS (SELECT * FROM t1 WHERE a = @a AND b IS NULL) -- Impossible b n'est plus NULL (cf <1>)
        BEGIN
            -- Un pavé assez conséquent ...
        END
     
        SELECT @i = @i + 1 -- Iteration
    END

    Tout ça pour écrire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE t1
       SET b = (/* un petit select */),
         c = ISNULL(c, 1)

    Pourquoi faire simple quand on peut faire compliqué?
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #366
    ILP
    ILP est déconnecté
    Membre confirmé
    Avatar de ILP
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Mai 2002
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 258
    Points : 609
    Points
    609
    Par défaut
    Je viens de le trouver :
    Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if MessageDlg('Une table de même nom existe déjà dans le thème ouvert, est-ce une mise à jour ?',mtConfirmation,[mbYes,mbNo],0)=mrYes
     then
      majConfirme:=true;
     
    if not majConfirme
     then
      CodageRue;

    Je précise quand même que la variable majConfirme n'est pas utilisée plus loin dans le code.

  7. #367
    Invité(e)
    Invité(e)
    Par défaut
    Dans le même genre il y a longtemps, très longtemps, dans une entreprise lointaine, très lointaine:

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(!A && !B) 
    {}
    else 
    {
        une_fonction();
    }
    Car ajouter un point d'exclamation et deux parenthèses pouvait changer le fonctionnement (ou ralentir le programme, je ne sais plus)

    Tiens, encore une autre :

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(A) {
        une_fonction();
    } else if (!A) {
        une_autre_fonction();
    } else {
        encore_une fonction();
    }

  8. #368
    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
    Peut-être qu'évaluer ‘A’ cause des effets de bord et que le dernier bloc doit être exécuté si A vaut successivement faux puis vrai ?

    Ou peut-être, comme c'est plus probable, le dernier bloc ne sert à rien

  9. #369
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut
    Citation Envoyé par spidermario Voir le message
    Peut-être qu'évaluer ‘A’ cause des effets de bord et que le dernier bloc doit être exécuté si A vaut successivement faux puis vrai ?
    Aucune chance : les conditions suivant la condition valide sont ignorées par définition, même si le bloc activé modifie la valeur de A ; les conditions suivant une condition ignorée testent la même valeur de A, puisqu'aucun bloc n'aura pu la modifier !

  10. #370
    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
    Moi je trouve ça très intelligent. Et oui! Le code est déjà prêt lorsque dans un futur proche, on se rendra compte que le boolean peut avoir une troisième valeur, qui n'est ni A ni non A. Ce codeur est un visionnaire.
    THIS!IS!NOT!MY!COW!

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

  11. #371
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut
    Citation Envoyé par gmotw Voir le message
    Moi je trouve ça très intelligent. Et oui! Le code est déjà prêt lorsque dans un futur proche, on se rendra compte que le boolean peut avoir une troisième valeur, qui n'est ni A ni non A. Ce codeur est un visionnaire.
    Ça doit être ce qu'on appelle de logique floue... mais alors très floue !
    Ou alors pour les états quantiques superposés ?

  12. #372
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Citation Envoyé par dvdbly Voir le message
    Ça doit être ce qu'on appelle de logique floue... mais alors très floue !
    Ou alors pour les états quantiques superposés ?
    Oui, absolument ! Et pour preuve :

    Le code en question à permis de faire un voyage dans l'espace et dans le temps...

    Citation Envoyé par mabu Voir le message
    Dans le même genre il y a longtemps, très longtemps, dans une entreprise lointaine, très lointaine:

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(!A && !B) 
    {}
    else 
    {
        une_fonction();
    }
    Car ajouter un point d'exclamation et deux parenthèses pouvait changer le fonctionnement (ou ralentir le programme, je ne sais plus)

    Tiens, encore une autre :

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(A) {
        une_fonction();
    } else if (!A) {
        une_autre_fonction();
    } else {
        encore_une fonction();
    }

  13. #373
    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 dvdbly Voir le message
    Aucune chance : les conditions suivant la condition valide sont ignorées par définition, même si le bloc activé modifie la valeur de A ; les conditions suivant une condition ignorée testent la même valeur de A, puisqu'aucun bloc n'aura pu la modifier !
    Sauf si “A” est une simplification dans la mention par mabu du code initial et qu'il s'agissait originellement d'une fonction.

    C'est à cette situation que je pensais, pas à sa modification dans un des blocs qui est, bien entendu, impossible dans le cas d'un tel chemin.

  14. #374
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Points : 345
    Points
    345
    Par défaut
    en même temps c'est parfois justifié: http://www.boost.org/doc/libs/1_43_0...html#id1906921

  15. #375
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut
    Citation Envoyé par spidermario Voir le message
    Sauf si “A” est une simplification dans la mention par mabu du code initial et qu'il s'agissait originellement d'une fonction.

    C'est à cette situation que je pensais, pas à sa modification dans un des blocs qui est, bien entendu, impossible dans le cas d'un tel chemin.
    Tu penses à quelque chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(A(p1)) {
        une_fonction();
    } else if (!A(p2)) {
        une_autre_fonction();
    } else {
        encore_une fonction();
    }
    ?

    J'avais conclu (peut-être un peu vite) que la formulation "une_fonction()", "une_autre_fonction()", etc. impliquait que "A" ne pouvait se référer qu'à une variable !

  16. #376
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut
    Citation Envoyé par CedricMocquillon Voir le message
    en même temps c'est parfois justifié: http://www.boost.org/doc/libs/1_43_0...html#id1906921
    Moi, au-delà de deux boules, je ne joue plus...

    Cela dit, c'est intéressant.

  17. #377
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Points : 345
    Points
    345
    Par défaut
    C'est sûr au premier abord ça parait un peu bizarre surtout hors contexte, mais les tribools ont leur utilité (je m'en sers actuellement pour un client)

  18. #378
    Membre averti
    Homme Profil pro
    Buisint
    Inscrit en
    Septembre 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Buisint

    Informations forums :
    Inscription : Septembre 2008
    Messages : 220
    Points : 438
    Points
    438
    Par défaut
    Citation Envoyé par CedricMocquillon Voir le message
    C'est sûr au premier abord ça parait un peu bizarre surtout hors contexte, mais les tribools ont leur utilité (je m'en sers actuellement pour un client)

    Peux-tu préciser le contexte dans lequel tu les emploies ?

  19. #379
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Cela ressemble au CheckBox à 3 états.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(CheckBox)
      //case cochée
    else if (!CheckBox )
        //case décochée
        else
         //case ni cochée ni décochée
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  20. #380
    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
    Citation Envoyé par dvdbly Voir le message
    Peux-tu préciser le contexte dans lequel tu les emploies ?

    ça peut servir dans des cas d'automatisme ou de système embarqué, quand par exemple tu veux savoir si une porte automatique est ouverte ou fermée.

    On peut imaginer que ouverte = true, fermé = false, et entre les deux (en train de s'ouvrir ou de se fermer) = indéterminé.

    De manière plus générale cela interviens aussi dans les cas de logique floue et/ou de logique ternaire, ou ton système doit prendre des décisions en ayant à sa disposition des informations incomplètes ou incohérentes.

    http://fr.wikipedia.org/wiki/Logique_floue
    http://fr.wikipedia.org/wiki/Logique_ternaire
    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