Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 5 sur 25 PremièrePremière 12345678915 ... DernièreDernière
Affichage des résultats 81 à 100 sur 496
  1. #81
    Membre du Club
    Inscrit en
    mars 2007
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : mars 2007
    Messages : 169
    Points : 67
    Points
    67

    Par défaut

    [QUOTE=hermes1983;4765678]Alors moi, je pense que le truc le plus incroyable a été de chercher un jour sous quelle condition je recevais la valeur "E000:R" via un socket TCP. Je suis tombé sur le code suivant :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        if(
            !checkTag(session->barcode, "TRANSIT") &&
            (
             (!strcmp(mode, F_IT) && ((g_comlabel!=0 && !checkTagValue(session->barcode, "TYPE", "COMMON")) || checkTag(session->barcode, "RELABEL")) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N"))) ||
             (!strcmp(mode, "RELABEL") && !strcmp(szStr1, "FR")) ||
             (!strcmp(mode, F_IT) && checkTag(session->barcode, "REBUILD")) ||
             (g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && (!checkTagValue(session->barcode, "TYPE", "COMMON") /*|| checkTagValue(session->barcode, "EXPORT", "Y")*/) && (session->isnprint || !checkTagValue(session->barcode, "CPEX", "N")) ) ||
             (!g_comlabel && strcmp(mode, F_IT) && strcmp(mode, "RELABEL") && checkTag(session->barcode, "RELABEL")) ||
             (g_frinitcheck && !strcmp(mode, F_IT) && !checkTag(session->barcode, "COMIMP") && checkTagValue(session->barcode, "TYPE", "COMMON") && !frCheckRoute(session->barcode))
            ) 
          )
        {
            strcpy(data, "E000:R");
            // Autres trucs imbitables
        }
    OUAHHHHHHHHHHHHHHHHHHHH Mon préféré !!
    Ce que j'aime le plus, ce sont les commentaires de certaines conditions !!!! Totalement ouf !!!!!!

    Pas mieux

  2. #82
    Expert Confirmé
    Avatar de Alain Defrance
    Homme Profil pro Alain DEFRANCE
    Project Lead
    Inscrit en
    août 2007
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain DEFRANCE
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Project Lead

    Informations forums :
    Inscription : août 2007
    Messages : 1 994
    Points : 3 766
    Points
    3 766

    Par défaut

    Citation Envoyé par hermes1983 Voir le message
    J'avais écrit ça une fois sans faire gaffe en Java, et je m'en suis rendu compte dans le debugger. Maintenant, voilà pourquoi je me permets de faire un commentaire : le compilateur (Java 6) avait remplacé le == par un appel à equals sans me le dire, et le watch du debugger que j'avais fait par copier/coller n'avait pas fait cette substitution. Il m'en a fallu du temps pour comprendre ça...
    Interessant comme expérience, mais est-tu sûr de toi ? As-tu tenter de décompiler ton .class afin de voir ce qu'il se passe ? En fait je suis peut-être dans le faux mais j'ai jamais vu ce comportement à la compilation.

    Si on prend :
    Code :
    1
    2
    3
    4
    5
    6
    public class M {
        public static void main(String[] argv) {
            String a1 = "a", a2 = "a";
            System.out.println(a1 == a2);
        }
    }
    Après décompilation on obtient :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class M
    {
    
        public M()
        {
        }
    
        public static void main(String args[])
        {
            String s = "a";
            String s1 = "a";
            System.out.println(s == s1);
        }
    }
    Bien évidement ca renvoit true

    A noter que si dans le sout on fait un "a" == "a" sans variable intermédiaire, après la compilation on observera System.out.println(true);

  3. #83
    Membre expérimenté
    Profil pro
    Développeur Java
    Inscrit en
    mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : mars 2004
    Messages : 624
    Points : 584
    Points
    584

    Par défaut

    Citation Envoyé par Théolude Voir le message
    Citation Envoyé par hermes1983 Voir le message
    Alors moi, je pense que le truc le plus incroyable a été de chercher un jour sous quelle condition je recevais la valeur "E000:R" via un socket TCP. Je suis tombé sur le code suivant :
    OUAHHHHHHHHHHHHHHHHHHHH Mon préféré !!
    Ce que j'aime le plus, ce sont les commentaires de certaines conditions !!!! Totalement ouf !!!!!!

    Pas mieux
    +1, il est génial ce code !

  4. #84
    Membre confirmé

    Profil pro
    Inscrit en
    août 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : août 2006
    Messages : 218
    Points : 284
    Points
    284

    Par défaut

    Un de mes élèves m'a présenté une application avec cette portion de C++ qui m'a fait rêver :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // On ouvre le fichier
    ...
    
    // On stocke les lignes dans un tableau
    i = 0;
    try {
        while (1) {
             tablo[i++] = fichier.readLine();
        }
    } catch (...) {
        // On fait le traitement du tablo
    }
    C'est propre et efficace !

    Laurent

  5. #85
    Invité régulier
    Inscrit en
    juin 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : juin 2003
    Messages : 20
    Points : 7
    Points
    7

    Par défaut

    Citation Envoyé par monsieurben Voir le message
    J'ai bossé avec un presta tellement nul que je sais pas trop quel bout de code choisir.

    J'ai eu droit à celui-ci, plutôt pas mal :

    Dans une page de traitement d'un formulaire :

    Code :
    1
    2
    3
    4
    5
    <?php 
    
    $nom = post('nom');
    $prenom = post('prenom');
    [...]
    Et dans un fichier inclus, ladite fonction :

    Code :
    1
    2
    3
    4
    <?php
    function post($var) {
    return $_POST['$var'];
    }
    .
    A part le nom de la fonction (je l'aurai appellé getParameter), je ne vois pas le problème. Je trouve cela justement élégant. Je ne suis pas expert PHP mais si un jour, on te dit que tu dois récupérer les variables en GET et non plus en POST. Tu modifies uniquement ta fonction post (oui le nom n'est pas terrible).

    Code :
    1
    2
    3
    4
    function post($var) {
    return $_GET['$var'];
    }
    Et tu n'as pas besoin de remplacer tes 5000 $_POST, si tu n'avais pas utilisé de fonction post. On peut aussi imaginer que tu veuilles faire un traitement particulier par la suite (que faire si la variable est null ou vide, tu peux alors faire un traitement générique).


    Donc je trouve cela justement élégant meme si ca parait lourd. La personne qui a développé a pensé à l'évolution future du produit.

  6. #86
    Membre expérimenté
    Homme Profil pro Rémi BOURGAREL
    Développeur .NET
    Inscrit en
    juin 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Nom : Homme Rémi BOURGAREL
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : juin 2006
    Messages : 425
    Points : 501
    Points
    501

    Par défaut

    Je rajouterai que si t'as des besoin de sécurité (injection sql, xss et autre), tu peut ajouter tes règles de sécu à cet endroit.

    A mon taf on avais ce genre de fonction, et ils ont développé 5-6 ans sans savoir ce qu'était l'injection sql. Un beau jour ce qui devait arriva : grosse injection de d'iframe dans nos champ texte on a réussi a récupérer la base et a se protéger en 1 demi journée et on est sur que c'est bon.

  7. #87
    Membre actif
    Inscrit en
    novembre 2006
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : novembre 2006
    Messages : 156
    Points : 169
    Points
    169

    Par défaut

    Citation Envoyé par gailuris Voir le message
    Bonjour,

    ça m'a fait rire, j'ai eu le même, mais j'ai eu l'explication, quand on utilise checkstyle (ou d'autres outils surement), on peut interdire l'utilisation de "magic number" (de nombres utilisés en dur, en toutes logique si j'utilise le nombre 32 dans un programme il a une signification et je peux donc lui créer une constante ayant un nom qui ait un sens) mais certains développeurs ne comprenant pas pourquoi ils ont une erreur (ou un warning) et a qui on n'a pas expliqué les principes de bases de la qualité de codes font ce genre d'abbérations.

    C'est de la qualité pour faire plaisir à l'outil => on abouti à l'inverse d'un code de qualité.
    Effectivement, c'est très vraisemblablement à cause de checkstyle que le développeur a fait ce code car effectivement nous imposons des contraintes qualitatives basé sur cet outil.

  8. #88
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : avril 2009
    Messages : 15
    Points : 14
    Points
    14

    Par défaut

    Ce n'est pas un bout de code, mais imaginez:
    • Un code en Java avec pakages/classes/methods (normal quoi)
    • Des classes longues et des méthodes longues (un classique)
    • Tout est en static même les référrences


    Dans ce cas et plus que jamais, il faut comprendre comment est-ce que l'interpréteur Java fonctionne et à quel moment précis il effectue tel ou tel action. Car on peut s'attendre dans ce cas à des NullPointerException en pagaille. Le développeur (il a fait ça tout seul) n'avait pas compris l'intérêt de la programmation objet. Il en était resté à Pascal et avait essayé de retrouver l'environnement Pascal dans Java.

    C'est vraiment horrible ! Comment peut-on faire un truc pareil ?

  9. #89
    Expert Confirmé Avatar de jabbounet
    Homme Profil pro frederic frances
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 907
    Détails du profil
    Informations personnelles :
    Nom : Homme frederic frances
    Âge : 38

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 907
    Points : 2 684
    Points
    2 684

    Par défaut

    Citation Envoyé par kerflyn Voir le message
    Ce n'est pas un bout de code, mais imaginez:
    • Un code en Java avec pakages/classes/methods (normal quoi)
    • Des classes longues et des méthodes longues (un classique)
    • Tout est en static même les référrences


    Dans ce cas et plus que jamais, il faut comprendre comment est-ce que l'interpréteur Java fonctionne et à quel moment précis il effectue tel ou tel action. Car on peut s'attendre dans ce cas à des NullPointerException en pagaille. Le développeur (il a fait ça tout seul) n'avait pas compris l'intérêt de la programmation objet. Il en était resté à Pascal et avait essayé de retrouver l'environnement Pascal dans Java.

    C'est vraiment horrible ! Comment peut-on faire un truc pareil ?

    clair comment as t'ont oser forcer un développeur a faire du java, quel torture que de faire du java ....

  10. #90
    Membre éprouvé Avatar de gmotw
    Inscrit en
    mars 2008
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : mars 2008
    Messages : 384
    Points : 432
    Points
    432

    Par défaut

    Dans du code action script que je maintiens:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    if (condition)
    ;
    ;
    ;
    ;
    ;
    ;
    ...

    Je suis pas experte là dedans, mais c'est normal si je ne vois pas l'intérêt?

    Et sinon, j'avais vu de belles choses en java, mais mon esprit a effacé de lui-même les souvenirs pour éviter les traumatismes.
    THIS!IS!NOT!MY!COW!

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

  11. #91
    Membre éclairé

    Inscrit en
    juillet 2008
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : juillet 2008
    Messages : 180
    Points : 305
    Points
    305

    Par défaut

    Oh, juste un petit truc sympa, en C++, mais sans utiliser la librairie standard. Presque du C en fait.

    Code :
    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
    struct Object {
        Object *next;
        int value;
    };
    
    Object head = { NULL, 0 };
    
    void PushObject(Object *obj) {
        Object *tail = &head;
        while (tail.next != NULL)
            tail = tail.next;
        obj.next = NULL;
        tail.next = obj;
    }
    
    Object * PopObject() {
        Object *tail = &head;
        Object *prevtail = NULL;
        while (tail.next != NULL) {
            prevtail = tail;
            tail = tail.next;
        }
        if (tail != &head) {
            prevtail.next = NULL;
            return tail;
        }
        return NULL;
    }
    Bien que fonctionnel et sans bug (j'espère en fait, car j'ai réécrit ici du code vieux de 15 ans environ) le produit est sorti avec ça dedans.

    Pour rajouter un objet sur une pile, en parcourt toute la pile et on ajoute l'objet à la fin. Pour le retirer, on parcourt à nouveau toute la pile, et on l'enlève. Ce programmeur n'avait pas du tout compris l'intérêt des piles !

    Heureusement qu'il n'y avait pas trop d'éléments à empiler et dépiler ...

    Didier

  12. #92
    Expert Confirmé Sénior
    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    4 867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 4 867
    Points : 6 323
    Points
    6 323

    Par défaut

    Citation Envoyé par dtrosset Voir le message
    Pour rajouter un objet sur une pile, en parcourt toute la pile et on ajoute l'objet à la fin. Pour le retirer, on parcourt à nouveau toute la pile, et on l'enlève. Ce programmeur n'avait pas du tout compris l'intérêt des piles !

    Heureusement qu'il n'y avait pas trop d'éléments à empiler et dépiler ...

    Didier
    euuh je ne comprends pas ce que tu veux dire : tu veux dire que le programmeur aurait du utiliser un conteneur de la STL plutot que des listes chainées du C ?

  13. #93
    Expert Confirmé Sénior
    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    4 867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 4 867
    Points : 6 323
    Points
    6 323

    Par défaut

    Citation Envoyé par Lung Voir le message
    Le compilateur Delphi interdit la modification de la variable utilisée par une boucle for.
    ok merci pour l'info

  14. #94
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 081
    Points
    15 081

    Par défaut

    Citation Envoyé par Mat.M Voir le message
    euuh je ne comprends pas ce que tu veux dire : tu veux dire que le programmeur aurait du utiliser un conteneur de la STL plutot que des listes chainées du C ?
    Je pense qu'il voulait dire que c'était plus rapide d'ajouter/retirer l'element en début de liste, plutot que d'aller systematiquement à la fin.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #95
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    24 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 24 010
    Points : 32 148
    Points
    32 148

    Par défaut

    Les deux, je pense. Une std::stack< Object, std::list<Object> > aurait fait une pile chaînée mieux gérée...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #96
    Membre du Club
    Développeur informatique
    Inscrit en
    mars 2009
    Messages
    54
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mars 2009
    Messages : 54
    Points : 41
    Points
    41

    Par défaut

    petite lecture ... si jamais personne ne l'a cité avant:
    http://fr.wikibooks.org/wiki/Program...code_illisible

  17. #97
    Membre expérimenté
    Homme Profil pro Rémi BOURGAREL
    Développeur .NET
    Inscrit en
    juin 2006
    Messages
    425
    Détails du profil
    Informations personnelles :
    Nom : Homme Rémi BOURGAREL
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : juin 2006
    Messages : 425
    Points : 501
    Points
    501

    Par défaut

    Un joli truc dans une vieille partie du système, pour appeler un webservcie externe :

    Post sur page asp => procedure stockée sql => procedure stockée clr => webservice interne (oui on s'auto appelle et vu que c'est dans 2 appli différentes, la requète http est faites ) => webservice externe

    ... quand tu connais pas le truc et que tu debuggue t'a l'impression de chasser le dahut.

  18. #98
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    24 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 24 010
    Points : 32 148
    Points
    32 148

    Par défaut

    Citation Envoyé par galyathee Voir le message
    petite lecture ... si jamais personne ne l'a cité avant:
    http://fr.wikibooks.org/wiki/Program...code_illisible
    Ça a l'air sympa. Je connaissais How To Write Unmaintainable Code de Roedy Green, aussi.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #99
    Membre actif Avatar de Gunny
    Inscrit en
    avril 2007
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 143
    Points : 180
    Points
    180

    Par défaut

    Un ami vient de me dire ça sur msn :

    X dit:
    J'ai lu un test ya pas longtemps

    X dit:
    Une fonction qui prend vrai ou faux en paramètre, si c'est vrai il met ok dans un string, si c'est faux ko, et après il compte le nombre de k qui suivent un o pour savoir si les tests ont tous réussi.

  20. #100
    Membre Expert Avatar de BainE
    Inscrit en
    mai 2004
    Messages
    1 313
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 1 313
    Points : 1 187
    Points
    1 187

    Par défaut

    change d ami et vite
    "vaste programme"

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •