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. #141
    Membre chevronné
    Profil pro
    Développeur Java Indépendant
    Inscrit en
    Mai 2007
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java Indépendant

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 333
    Points : 2 061
    Points
    2 061
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    moi aussi je ne suis pas convaincu
    Pareil.
    Citation Envoyé par sunseb7 Voir le message
    Quelle solution élégante pour éviter ce problème au fait ? Car c'est vrai qu'on se retrouve parfois vite avec beaucoup de "echo"...

    Après pour ce qui est de mélanger traitement et HTML, c'est sûr que c'est juste infernal à maintenir ensuite...
    Je pense que la solution est d'enlever les "<?php ?>" et de mettre directement en html, quitte à mettre des <?php ?> pour les quelques variables à insérer.
    Yoshi

    PS : tous les propos tenus dans le message ci-dessus sont à préfixer avec "A mon humble avis", "Je pense que". Il serait inutilement fastidieux de le rappeler à chaque phrase.

  2. #142
    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 Herve-Loiret Voir le message
    Je pense que la solution est d'enlever les "<?php ?>" et de mettre directement en html, quitte à mettre des <?php ?> pour les quelques variables à insérer.
    Ou de faire des templates, comme font les gens civilisés qui n'ont pas oublié le concept de MVC sur le bord de la route.

  3. #143
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Une toute fraîchement trouvée (hier). Ce n'est pas ne bourde énorme, mais ça m'a tellement énervé que je vous la poste:
    Code cplusplus : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // AppTypes.h: LE fichier inclus absolument partout dans l'application
    
    #include <vector>
    // autres includes
    
    using namespace std;
    
    // code
    using namespace std dans un header (qui en plus va être inclus partout dans l'appli), cela signifie que tous les fichiers sources vont se farcir le namespace std. Ce qui signifie que nulle part je n'aurai le droit de déclarer une variable qui existe déjà dans la lib standard. Et le problème c'est qu'il y a quand-même pas mal de variables déclarée dans cette lib standard. On n'a donc pas le droit non plus d'utiliser des libs qui utilisent des variables déclarée dans la lib standard.

    Et comme il s'agit d'un projet déjà bien avancé et assez imposant, la suppression de ce using namespace std va impliquer pas mal de modifs et de tests (une modif n'est jamais anodine)... et dans l'histoire, tout ce que j'ai gagné c'est la haine de mes collègues programmeurs
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #144
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par Arnaud F. Voir le message
    Une fois j'ai eu droit à un super :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE champ1 = champ1 FROM uneTable

    Je me suis toujours demandé son utilité (surtout en dehors de toute transaction ...)
    Et puis surtout, normalement c'est

    UPDATE <table> SET <champ>=X

    Et non UPDATE FROM

    On est passé tous à côté

  5. #145
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    En java,

    Je vois couramment des cast en classe fille pour appeler une méthode de la classe mère :
    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
    class A {
      void callme() {}
    }
    
    class A1 extends A {
      void callme() {
        // traitement 1
      }
    }
    
    class A2 extends A {
      void callme() {
        // traitement 2
      }
    }
    à l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A a;
    if (a instanceof A1) {
      ((A1) a).callme();
    } else if (a instanceof A2) {
      ((A2) a).callme();
    } else {
      a.callme();
    }
    Polymor-quoi???

  6. #146
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    Moins grave mais lourd, des classes qui se ressemblent, toutes portent une méthode update().

    à l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void updateAll() {
    instance1.update();
    instance2.update();
    instance3.update();
    instance4.update();
    // ... 25 fois
    }
    Interface tu connais?
    Ecouteur/écouté ?

  7. #147
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 135
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par fridobox Voir le message
    En java,

    Je vois couramment des cast en classe fille pour appeler une méthode de la classe mère :
    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
    class A {
      void callme() {}
    }
    
    class A1 extends A {
      void callme() {
        // traitement 1
      }
    }
    
    class A2 extends A {
      void callme() {
        // traitement 2
      }
    }
    à l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    A a;
    if (a instanceof A1) {
      ((A1) a).callme();
    } else if (a instanceof A2) {
      ((A2) a).callme();
    } else {
      a.callme();
    }
    Polymor-quoi???
    Pas mal comme perle aussi. Mais bon peut être ce sont des gens qui viennent du C++ qui savant pas que les méthodes sont virtuelles par défaut en java ...

    J'essaie de leur trouver des excuses, car je suis gentil

  8. #148
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    Une perle : le stockage de this casté en classe mère :

    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
    21
    22
    23
    24
    class Mere {
      void callme() {}
    }
    
    class Fille extends Mere {
      
      Mere maman;
    
      MaClass() {
        maman = (Mere) this;
      }
    
      @Override
      void callme() { 
         // ... 
      }
    
      void other() {
        if(maman != null) {
          maman.callme();
        }
      } 
    }
    En fait, c'est une tentative d'appeler la méthode mère sans qu'elle soit surchargée dans la classe fille

    Droit à la palme d'or(dure) ?

    Le test si maman != null est énorme non?

  9. #149
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par inconnu652000 Voir le message
    Pas mal comme perle aussi. Mais bon peut être ce sont des gens qui viennent du C++ qui savant pas que les méthodes sont virtuelles par défaut en java ...

    J'essaie de leur trouver des excuses, car je suis gentil
    Malheureusement, ce sont des développeurs java 100%

  10. #150
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Citation Envoyé par fridobox Voir le message
    Malheureusement, ce sont des développeurs java 100%
    Développeur ou bidouilleur ?
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  11. #151
    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
    100% Java 0% modélisation

  12. #152
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Là quand même à ce stade , c'est triste de pas connaitre le compotement de son langage face à la polymorphie.
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  13. #153
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 135
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par Alain Defrance Voir le message
    Là quand même à ce stade , c'est triste de pas connaitre le compotement de son langage face à la polymorphie.
    Oui bon alors ne soyons pas dur !!!

    Je me souviens avoir réinventer le principe des sémaphores en C++ quand j'ai débuté normal je suis pas informaticien à la base donc je ne connaissais rien au multithreading ....
    Le pire c'est que ça a marché !! sauf 2 ou 3 fois par mois lol véridique ! ils se sont arraché les cheveux avec mon "bug" ...
    Donc je me tais et je fais profil bas lol



  14. #154
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Citation Envoyé par inconnu652000 Voir le message
    Oui bon alors ne soyons pas dur !!!

    Je me souviens avoir réinventer le principe des sémaphores en C++ quand j'ai débuté normal je suis pas informaticien à la base donc je ne connaissais rien au multithreading ....
    Le pire c'est que ça a marché !! sauf 2 ou 3 fois par mois lol véridique ! ils se sont arraché les cheveux avec mon "bug" ...
    Donc je me tais et je fais profil bas lol


    Pour ma part j'ai également réinventé la roue un bon nombre de fois .

    Mais bon là c'est une méconnaissance du langage en lui même ca crain .
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

  15. #155
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Ca a déjà été dit, ici et ailleurs, mais il est toujours bon de le rappeler:
    Tout le monde fait des bourdes, c'est humain. L'important c'est de savoir s'en rendre compte - accepter les critiques, se remettre en question quand il y a des bugs, prendre le temps de lire sur le sujet (la doc, du bon code, les specs, developpez.com...), prendre le temps de discuter, bref, ne pas se jeter sur le code sans prendre un minimum de recul - et s'en souvenir pour ne plus reproduire ces erreurs.

    Il y a quelqu'un qui a ça dans sa signature, à peu de chose près: "un homme fort n'est pas quelqu'un qui ne tombe jamais, mais quelqu'un qui sait se relever"
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  16. #156
    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 r0d Voir le message
    Ca a déjà été dit, ici et ailleurs, mais il est toujours bon de le rappeler:
    Tout le monde fait des bourdes, c'est humain. L'important c'est de savoir s'en rendre compte - accepter les critiques, se remettre en question quand il y a des bugs, prendre le temps de lire sur le sujet (la doc, du bon code, les specs, developpez.com...), prendre le temps de discuter, bref, ne pas se jeter sur le code sans prendre un minimum de recul - et s'en souvenir pour ne plus reproduire ces erreurs.

    Il y a quelqu'un qui a ça dans sa signature, à peu de chose près: "un homme fort n'est pas quelqu'un qui ne tombe jamais, mais quelqu'un qui sait se relever"
    Perso j'ai souvent vu des nouveaux projets qu'on confiait aux stagiaires pour pas détourner des ressources.
    Au fil du temps le projet, s'il marche pas trop mal, finit par être couramment utilisé, mais le mal est fait: c'est quand même un stagiaire qui l'a fait, sans que personne ne fasse de relecture de code.
    Va expliquer le besoin de repasser sur du code qui marchouille dans une grosse boite (je travaille dans une banque dont le logo devrait plus être un mammouth qu'un écureuil je précise)

    Donc on se retrouve avec une montagne de code bizarre qui marche mais qui est incompréhensible et inmaintenable.


    Allez un petit exemple pour la route une tite web-application, de la part de quelqu'un qui trouve que le javascript, c'est vachement mieux que l'HTML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <body onLoad="showDF(year, month, day);">
    
    ...
    <div id='td-search-date'></div> 
    ...
    Avec le détail de la fonction javascript:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    function showDF(year,month,day,debut,fin) {
    	document.getElementById("td-search-date").innerHTML=getDayhtml(year,month,day,debut,fin);
    }
    
    function getDayhtml(year,month,day,debut,fin) {
    dayHTML = "<span id='divDay' class='PortletNavigate_p1_smenu_dominante2' style='visibility:visible;position:relative'>"+
    	  "<table width='100%' height=''>"+
    	  "<tr>"+
    	  "<td valign='top'>"+
              "<table width='200' border='0'>"+
    	  "<tr>"+
    	  "<td width='200' height='9' class='menu_haut'><img src='/comptage/web/charte-rte/images/spacer.gif' width='200' height='9'></td>"+
    	  "</tr>"+
    	  "<tr>"+
    	  "<td valign='top' class='menu_milieu'>"+
    	  "<table width='200' height='20' cellpadding='0' cellspacing='0' border='0'>"+
    	  "<tr>"+ 
    	  "<td width='4'><img src='/comptage/web/charte-rte/images/spacer.gif' width='4' height='15'>"+
    	  "</td>"+
    	  "<td class='dataOther' width='100' colspan=2>"+debut+
    	  "</td>"+
    	  "</tr>"+
    	  "<tr>"+
    	  "<td width='4'><img src='/comptage/web/charte-rte/images/spacer.gif' width='4' height='15'>"+
    	  "</td>"+
    	  "<td class='titremenu_gauche' colspan=2 nowrap=nowrap>"+
    	  "<INPUT type=TEXT NAME=jourObjetDate1 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='"+day+"'>/"+
    	  "<INPUT type=TEXT NAME=moisObjetDate1 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='"+month+"'>/"+
    	  "<INPUT type=TEXT NAME=anneeObjetDate1 class='corps_de_texte_petit_gris' size=4 maxlength=4 value='"+year+"'>&nbsp;&nbsp;"+
    	  "<INPUT type=TEXT NAME=heureObjetDate1 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='0'>:"+
    	  "<INPUT type=TEXT NAME=minuteObjetDate1 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='0'>:"+
    		"<INPUT type=TEXT NAME=secondeObjetDate1 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='0'>"+
    	  "</td>"+
    	  "</tr>"+															
    	  "</table>"+
    	  "<table width='200' height='20' cellpadding='0' cellspacing='0' border='0'>"+
    	  "<tr>"+
    	  "<td width='4'><img src='/comptage/web/charte-rte/images/spacer.gif' width='4' height='15'></td>"+
    	  "<td class='dataOther' width='100' colspan=2>"+fin+
    	  "</td>"+
    	  "</tr>"+
    	  "<tr>"+ 
    	  "<td width='4'><img src='/comptage/web/charte-rte/images/spacer.gif' width='4' height='15'></td>"+
    	  "<td class='titremenu_gauche' colspan=2 nowrap=nowrap>"+
    	  "<INPUT type=TEXT NAME=jourObjetDate2 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='"+day+"'>/"+
    	  "<INPUT type=TEXT NAME=moisObjetDate2 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='"+month+"'>/"+
    	  "<INPUT type=TEXT NAME=anneeObjetDate2 class='corps_de_texte_petit_gris' size=4 maxlength=4 value='"+year+"'>&nbsp;&nbsp;"+
    	  "<INPUT type=TEXT NAME=heureObjetDate2 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='23'>:"+
    	  "<INPUT type=TEXT NAME=minuteObjetDate2 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='59'>:"+
    		"<INPUT type=TEXT NAME=secondeObjetDate2 class='corps_de_texte_petit_gris' size=2 maxlength=2 value='59'>"+
    	  "</td>"+
    	  "</tr>"+
    	  "</table>"+
    	  "</td>"+
    	  "</tr>"+
    	  "<tr>"+
    	  "<td width='200' height='9' class='menu_bas'><img src='/comptage/web/charte-rte/images/spacer.gif' width='200' height='9'></td>"+
    	  "</tr>"+
    	  "</table>"+			
    	  "</td>"+
    	  "</tr>"+
    	  "</table>"+
    	  "</span>"+
    	  "</td>"+
    	  "</tr>"+
    	  "</table>"+
    		"<input type='hidden' name='dateType' value='parjour'>";
    	return dayHTML;
    }
    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.

  17. #157
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    dans le même style que ça.....

    Citation Envoyé par Jidefix Voir le message
    (.../...)
    Au fil du temps le projet, s'il marche pas trop mal, finit par être couramment utilisé, mais le mal est fait: c'est quand même un stagiaire qui l'a fait, sans que personne ne fasse de relecture de code.
    Va expliquer le besoin de repasser sur du code qui marchouille dans une grosse boite (je travaille dans une banque dont le logo devrait plus être un mammouth qu'un écureuil je précise)

    Donc on se retrouve avec une montagne de code bizarre qui marche mais qui est incompréhensible et inmaintenable.(.../...)
    *Vu chez un éditeur de logiciel, qui vend un pseudo-langage : la compilation a été faite par un stagiaire. Alors, l'utilisateur peut définir un type de données, une donnée, une "règle"(une ligne de code), des contenants divers......mais quand on compile, à chaque compilation d'élément, on revérifie tout en bloc. Donc si 500 données utilisent le même type, le type en question est vérifié 500 fois. Et si chaque donnée est utilisée dans 9 règles, le type de donnée est vérifié 5000 fois. A chaque compil. (mais il me semble qu'ils ont corrige à un moment ou à un autre).

    *Vu dans une banque qui sponsorise le rugby : on demande au stagiaire de faire les statistiques de la nouvelle application(qui marche bien par ailleurs). 7 colonnes(dont une de total), une vingtaine de lignes(totaux, moyennes, variations mensuelles, etc.....). Il fait le tout en une requête SQL. Évidemment illisible, et qui de plus ralentit considérablement au fur et à mesure que le temps passe et que la base s'étoffe. Au bout de 13 mois, le gestionnaire(moi) ne peut plus consulter les statistiques, la requête dépasse les 30 secondes qui déclenchent un time-out..... Je suis parti à ce moment là, en souhaitant bien du plaisir à mon successeur.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  18. #158
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Travaillant en temps que developpeur dans le domaine de la télévision sur IP, nous avons recemment reçu d'un associé une API a tester.

    En commencant à tester ça (du php, javascript,...) on se rend compte que pas grand chose ne marche.
    On commence un peu a éplucher le contenu des fichiers qui nous ont été fournis, et on tombe la dessus

    faut admettre qu'avec 3 's' ça ne fonctionne pas plus rapidement. Et moi qui pensait que des grosses boites qui codaient des APIs faisaient a bien, et bien la j'ai envie de dire "ou pas"...

  19. #159
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 135
    Points : 146
    Points
    146
    Par défaut
    Citation Envoyé par r0d Voir le message
    Ca a déjà été dit, ici et ailleurs, mais il est toujours bon de le rappeler:
    Tout le monde fait des bourdes, c'est humain. L'important c'est de savoir s'en rendre compte - accepter les critiques, se remettre en question quand il y a des bugs, prendre le temps de lire sur le sujet (la doc, du bon code, les specs, developpez.com...), prendre le temps de discuter, bref, ne pas se jeter sur le code sans prendre un minimum de recul - et s'en souvenir pour ne plus reproduire ces erreurs.

    Il y a quelqu'un qui a ça dans sa signature, à peu de chose près: "un homme fort n'est pas quelqu'un qui ne tombe jamais, mais quelqu'un qui sait se relever"

    ahhhhhh ohmmmmmm


  20. #160
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Je me souviens d'une appli web ASP (l'ancien, pas .Net) que nous avions étudiée pour en reprendre les principes dans une appli aux normes du jour.

    Les requêtes SQL étaient générées en javascript à la volée dans la page et faisaient une taille certaine...

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