+ Répondre à la discussion
Page 1 sur 8 12345 ... DernièreDernière
Affichage des résultats 1 à 20 sur 149
  1. #1
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : mai 2008
    Messages : 92
    Points : 80
    Points
    80

    Par défaut Les codes les plus hallucinants rencontrés :

    Voilà mon souci :
    Après avoir fait des études informatiques et un stage dans une boite internationale, je viens d'arriver dans le SI d'une PME.
    Et là, ho stupeur ! Je vois des choses hallucinantes !!! Des codes incompréhensibles et pas du tout optimisé !

    Alors, je demande au collègue (sans chercher à provoquer de conflits dès mon arrivé) pourquoi il fait comme ça.
    La seule réponse a été "Tu sorts tout juste des études le jeunes. Dans le monde réel, on ne fait pas les choses de la même manière !"

    Alors je me suis demandé si c'est partout la même chose. A priori non.

    Mais, je pense que si vous postez quelque truc hallucinant que vous avez pu voir (fonctions à 100 paramètres, algorithme de calcul de la longueur d'une chaine de caractère...) on peut rigoler un bon peu.

  2. #2
    Membre Expert
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 201
    Points : 1 355
    Points
    1 355

    Par défaut

    si tu ne connais pas deja; tu peux lire l'excellent The Daily WTF : http://thedailywtf.com/
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  3. #3
    Expert Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 217
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 217
    Points : 10 772
    Points
    10 772

    Par défaut

    Une bonne partie des codes "hallucinants" ont été faits sous extrême pression. Parfois, certains ont même l'apparence de code propre, mais, quand on y regarde de plus près, tout devient incompréhensible. Et on retrouve une doc d'une personne ayant passé une semaine à essayer de comprendre, et dont la conclusion est "l'algorithme semble aléatoire".....

    Je suis sur que je suis coupable de quelques horreurs. Je me rapelle d'au moins une, j'avais un truc un peu complexe à coder très vite, et, en manque d'inspiration, j'ai sorti une usine à gaz(me souviens plus du détail, juste des horribles imbrications illisibles dans tous les sens).

    Après, il y a les gnous, gens doués, mais pas pour l'informatique. Et là, on tombe assez vite dans l'horreur. Du genre :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim i as variant
    for i = 1 to 2
        'traitement numérique des lignes 1 et 2
    next i
    i = 3
    'traitement alphanumérique de la ligne 3
    i = 4
    'traitement numérique de la ligne, idem traitement 1 et 2
    for i = 5 to 7
        'traitement alphanumérique des lignes 5 à 7, idem traitement ligne 4
    next i
    'le tout continue comme ça jusqu'à plus de 120.....
    Et on m'a demandé de rajouter 4 lignes de plus. En trois jours. 2 heures plus tard, j'étais passé de 1000 lignes à 40, avec un petit référentiel des lignes en plus.(et si j'avais passé plus, j'aurais vraiment été un incompétent, je crois).




    Celà étant, ce qu'a dit ton collègue, même si dans son cas c'est peut-être faux, sera parfois vrai. On peut être amené à coder volontairement des solutions suboptimales d'un point du code afin de coller au plus près au besoin du client. J'ai eu un jour à générer du XML en cobol. A partir de cobol 3, il existe un ordre XML GENERATE. Il aurait donc semblé logique de l'utiliser. Eh bien non. Parceque la revue de code était assistée par des outils, calibrés pour le cobol 2, qu'il aurait couté fort cher de faire évoluer. Au final, j'ai fait un module "à la main", plus lent, plus moche, mais qui correspondait au besoin. Et qu'ils pouvaient valider avec leur outillage.

    Pas mal de choses doivent être désapprises. La solution optimale techniquement doit parfois être mise de coté(pas toujours, heureusement). Parfois même pour des raisons de maintenance : il sera difficille de trouver quelqu'un pour maintenir un code trop élégant, alors qu'on trouvera facilement quelqu'un pour déboguer du code bourrin.
    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.

  4. #4
    Membre Expert Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2005
    Messages : 1 083
    Points : 1 868
    Points
    1 868

    Par défaut

    Après un certain nombre d'expériences professionnelles, j'ai découvert que si on dispose de temps, on sera beaucoup plus enclin à faire du code élégant.
    Par contre, en cas de manque de temps, il est toujours plus viable de faire du code simple, direct et robuste, quitte à perdre en flexibilité et en maintenabilité.

    Il faut parfois choisir la manière de coder la plus rentable en fonction des contraintes posées par le client/l'utilisateur/le chef/le planning.
    Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
    - Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...

  5. #5
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 200
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 200
    Points : 14 396
    Points
    14 396

    Par défaut

    Citation Envoyé par LeGnome12 Voir le message
    Voilà mon souci :
    Après avoir fait des études informatiques et un stage dans une boite internationale, je viens d'arriver dans le SI d'une PME.
    Et là, ho stupeur ! Je vois des choses hallucinantes !!! Des codes incompréhensibles et pas du tout optimisé !

    Alors, je demande au collègue (sans chercher à provoquer de conflits dès mon arrivé) pourquoi il fait comme ça.
    La seule réponse a été "Tu sorts tout juste des études le jeunes. Dans le monde réel, on ne fait pas les choses de la même manière !"

    Alors je me suis demandé si c'est partout la même chose. A priori non.

    Mais, je pense que si vous postez quelque truc hallucinant que vous avez pu voir (fonctions à 100 paramètres, algorithme de calcul de la longueur d'une chaine de caractère...) on peut rigoler un bon peu.
    y'a pas de quoi rigoler..

    Même si cela peut s'avérer faux, la réponse du collègue est (le plus souvent) correcte...

    a) le monde réel N'EST PAS une théorie

    b) le monde réel a des contraintes

    c) quelques fois les problèmes sont TRES complexes, et les résoudre en suivant soi-disant les manières optimales les compliquent (le code, la maintenance, la perspective) plus que ne les simplifient...


    J'ai déjà fait des fonctions à 3000 lignes.... Je n'en suis pas particulièrement fier, mais je ne voyais pas (et j'ai eu du temps pour réfléchir) de moyen simple de faire autrement sans passer mon temps à jongler avec des sous-fonctions à 40 paramètres....


    En bref, la théorie et la pratique sont 2 choses bien différentes...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Expert Confirmé Sénior Avatar de 7gyY9w1ZY6ySRgPeaefZ
    Homme Profil pro
    dba
    Inscrit en
    juillet 2007
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : juillet 2007
    Messages : 2 932
    Points : 5 235
    Points
    5 235

    Par défaut

    souviron34, j'ai un peu de mal avec ce que tu dis.

    Ok, un petit jeune qui arrive, il a certes ses visions utopiques du métier.

    Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

    Bref, il faut savoir rester critique sur son code et le code de ses collègues...
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
    (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.
    Écrire en français sur un forum est une marque minimale de respect.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    février 2003
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : février 2003
    Messages : 380
    Points : 1 551
    Points
    1 551

    Par défaut

    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible.
    Qu'est-ce qui est important? Avoir un code respectant la norme du jour (parce qu'une norme qui change tous les deux où trois ans, c'est juste une mode) ou un code qui fait ce que l'on attend de lui et sans bug (connus)?

  8. #8
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 200
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 200
    Points : 14 396
    Points
    14 396

    Par défaut

    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

    Bref, il faut savoir rester critique sur son code et le code de ses collègues...
    Entièremnt d'accord sur le fait de savoir rester critique...

    Cependant, sur la partie "optimisation" par exemple, qu'est-ce qui n'est plus vrai à la version N+3 ??

    C'est parce que les DD ou la RAM ne coûtent pas cher, ou que les processeurs tournent 1000 fois plus vite ???

    Et alors ??

    Est-ce une raison pour ne pas optimiser ???
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  9. #9
    Membre Expert Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2005
    Messages : 1 083
    Points : 1 868
    Points
    1 868

    Par défaut

    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.

    Bref, il faut savoir rester critique sur son code et le code de ses collègues...
    Il ne faut pas oublier que maintenir ses codes, afin d'être à jour au niveau optimisation, est particulièrement chronophage.

    Je me suis dit, je ne sais combien de fois, que je passerais un peu de temps entre deux projets pour "refactorer" les codes existants et, au final, je n'ai absolument pas touché faute de temps.
    Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
    - Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...

  10. #10
    Expert Confirmé Sénior
    Avatar de Loceka
    Inscrit en
    mars 2004
    Messages
    2 048
    Détails du profil
    Informations forums :
    Inscription : mars 2004
    Messages : 2 048
    Points : 4 054
    Points
    4 054

    Par défaut

    J'ai relativement peu d'années d'expériences mais j'ai vu pas mal de codes vraiment moches. Et pourtant j'ai bossé (en SSII) uniquement pour des "grands" groupes : Ministères, France Telecom, Airbus, ...

    Un bout de code sur lequel un collègue est tombé sur un utilitaire de log qui faisait une surcouche à log4j (projet interne d'un des grands groupes ci-dessus) :
    Code Java :
    1
    2
    3
    4
    5
    try {
      // main du programme
    } catch (Throwable t) {
      System.exit(1);
    }

    En gros : une NullPointerException lancée dans le logger fait planter tout le programme (donc pas seulement l'utilitaire de log). Assez gênant...

  11. #11
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : mai 2008
    Messages : 92
    Points : 80
    Points
    80

    Par défaut

    Bon alors pour ceux qui se demandent encore pourquoi j'ai poster ce sujet.
    Pour ceux qui disent que dans le monde de l'entreprise, les contraintes obligent certaines choses.
    Je suis d'accord que le monde de l'entreprise n'est pas celui des études cependant il y a des codes qui ne sont pas concevable.
    Par exemple, j'ai vue des requêtes où il était utilisé des group by à la place d'order by !

    Un autre exemple :
    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
    29
    30
    $Rqt = "SELECT pkTable2, pkTable3, pkTable4 FROM table1 WHERE condition";
    $db = new SQLConnnect();
    $db->ExecuteRqt($Rqt);
    $cpt = 0;
    WHILE ($rs = $db->MapRecord())
        {
        echo "Ligne num";
        echo $cpt++;
        echo "<BR>";
        $db2 = new SQLConnect();
        $Rqt2 = "SELECT libelle1 FROM table2 WHERE pk=".$rs->pkTable2;
        $db2->ExecuteRqt($Rqt2);
        $rs2 = $db2->MapReccord();
        echo "Libelle 1 = ".$rs2->libelle1."<BR>";
        $db2->CloseConnection();
        $db3 = new SQLConnect();
        $Rqt3 = "SELECT libelle2 FROM table3 WHERE pk=".$rs->pkTable3;
        $db3->ExecuteRqt($Rqt3);
        $rs3 = $db3->MapReccord();
        echo "Libelle 2 = ".$rs3->libelle2."<BR>";
        $db3->CloseConnection();
        $db4 = new SQLConnect();
        $Rqt4 = "SELECT libelle3 FROM table4 WHERE pk=".$rs->pkTable4;
        $db4->ExecuteRqt($Rqt4);
        $rs4 = $db4->MapReccord();
        echo "Libelle 3 = ".$rs4->libelle3."<BR>";
        $db4->CloseConnection();
        }
        // fin
        $db->CloseConnection();
    Voilà à peu près comment était construit l'algorithme que j'ai trouvé un jour.
    Et encore j'ai rajouté des commentaire.
    Donc, que l'on m'explique pourquoi ouvrir et fermer des connexions à la bdd dans une boucle (de plusieurs milliers de lignes). Alors qu'une seule requête et quelques jointures (vraiment simple) fonctionne très bien !!

  12. #12
    Expert Confirmé Sénior Avatar de 7gyY9w1ZY6ySRgPeaefZ
    Homme Profil pro
    dba
    Inscrit en
    juillet 2007
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : juillet 2007
    Messages : 2 932
    Points : 5 235
    Points
    5 235

    Par défaut

    Citation Envoyé par LooserBoy Voir le message
    Il ne faut pas oublier que maintenir ses codes, afin d'être à jour au niveau optimisation, est particulièrement chronophage.
    Attention, je ne parle pas de mise à jour du code existant mais d'utiliser des "optimisations" d'un autre âge sur du nouveau code.
    En bd, j'ai vu des hint pour "optimiser" des requêtes qui n'avaient aucune raison d'être de nos jours, surtout quand on ne sait même pas à quoi ça sert. "On m'a montré à faire comme ça quand j'ai commencé à travailler, y a 10 ans" n'excuse pas de se renseigner un minimum...
    les règles du forum - mode d'emploi du forum
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
    (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    JE NE RÉPONDS PAS aux questions techniques par message privé.
    Écrire en français sur un forum est une marque minimale de respect.

  13. #13
    Expert Confirmé Sénior
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    avril 2008
    Messages
    2 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : avril 2008
    Messages : 2 654
    Points : 4 121
    Points
    4 121

    Par défaut

    En lisant le titre du post j'ai immédiatement pensé à ça ^^ (pardon à tous ceux qui connaissent déjà, ça date un peu faut bien avouer. Pour les autres, attention hallucination droit devant )

    Mais... vu la tournure qu'a pris la conversation je suis peut-être hors-sujet ?

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  14. #14
    Membre régulier Avatar de LeGnome12
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : mai 2008
    Messages : 92
    Points : 80
    Points
    80

    Par défaut

    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Mais ce n'est pas rare non plus de trouver des personnes d'expériences qui vivent avec des procédures codées il y a 10 ans mais qui ne sont plus en rapport avec l'évolution de la norme et de l'optimisation possible. À la question "pourquoi tu fais comme ça?", il n'est pas rare d'entendre des trucs du genre "c'est pour optimiser le process". Ce qui était vrai à la version N mais 10 ans plus tard à la version N+3, ce n'est plus vrai.
    Cela reprend très bien l'idée de mon post.

    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Bref, il faut savoir rester critique sur son code et le code de ses collègues...
    Je suis totalement d'accord, le code parfait n'existe pas. Lorsque mon collègue pose un regard critique sur mon code, je l'écoute et je sais prendre note.
    Citation Envoyé par 7gyY9w1ZY6ySRgPeaefZ Voir le message
    Ok, un petit jeune qui arrive, il a ses visions utopiques du métier.
    Ca résume le problème que je rencontre depuis mon arrivé dans l'entreprise. Tout ce que je peux dire est faut. Mes formations ne sont pas du tout reconnu ("ho, aujourd'hui tout le monde a le bac S").

    Il m'est arrivé de prosposé des idées qui ont été immédiatement regetées ("C'est complètement stupide !") sans même m'avoir laissé finir ma phrase. Deux mois après, mon collègue trouve l'idée sur un site et remarque que c'est exélent ! Lorsqu'il la partage et que je fais remarqué que c'est ce dont j'avais parlé, il répond avec mauvaise fois : "Mais non, c'est pas du tout ça."
    (et dire que lors de mon entretient on me demandait d'être force de proposition)

    Après ça, lorsque je trouve des tentatives de réinvanter la roue, je ne peux qu'en rire et je suis désolé si ça choque !

  15. #15
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 200
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 200
    Points : 14 396
    Points
    14 396

    Par défaut

    Citation Envoyé par RomainVALERI Voir le message
    En lisant le titre du post j'ai immédiatement pensé à ça ^^ (pardon à tous ceux qui connaissent déjà, ça date un peu faut bien avouer. Pour les autres, attention hallucination droit devant )


    Je ne connaissais pas et c'est excellent ..

    Merci




    Citation Envoyé par LeGnome12 Voir le message
    Ca résume le problème que je rencontre depuis mon arrivé dans l'entreprise. Tout ce que je peux dire est faut. Mes formations ne sont pas du tout reconnu ("ho, aujourd'hui tout le monde a le bac S").
    Pôv pitchoun !!!
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

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

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

    Informations forums :
    Inscription : septembre 2005
    Messages : 24 359
    Points : 34 782
    Points
    34 782

    Par défaut

    Je ne comprends pas le dillemme "élégant" contre "simple, direct et robuste". Car pour moi, "élégant" signifie "simple, direct et robuste" (et par extension, maintenable).

    C'est le code "intelligent" ("clever" en anglais) qu'il faut craindre.

    Ce n'est pas le code non-optimisé qui est mauvais: c'est le code inutilement compliqué, moins efficace qu'un truc plus simple. La réimplémentation maison d'une fonction de la bibliothèque standard comme Convert.ToDouble(). Le test de vérité.
    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.

  17. #17
    Expert Confirmé Sénior
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    avril 2008
    Messages
    2 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : avril 2008
    Messages : 2 654
    Points : 4 121
    Points
    4 121

    Par défaut

    Citation Envoyé par granquet Voir le message
    si tu ne connais pas deja; tu peux lire l'excellent The Daily WTF : http://thedailywtf.com/
    Citation Envoyé par Médinoc Voir le message
    C'est le code "intelligent" ("clever" en anglais) qu'il faut craindre.

    Ce n'est pas le code non-optimisé qui est mauvais: c'est le code inutilement compliqué, moins efficace qu'un truc plus simple. La réimplémentation maison d'une fonction de la bibliothèque standard comme Convert.ToDouble(). Le test de vérité.
    Bon ben on est tous abonnés au DWTF ou quoi ?

    C'est quoi vos ptits noms là-bas, tiens ? (moi c'est toshir0 ^^)

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  18. #18
    Membre éprouvé
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    septembre 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : septembre 2008
    Messages : 311
    Points : 427
    Points
    427

    Par défaut

    Citation Envoyé par LooserBoy Voir le message
    Il faut parfois choisir la manière de coder la plus rentable en fonction des contraintes posées par le client/l'utilisateur/le chef/le planning.
    Pourquoi parfois? qu'est ce qui justifierait de ne pas choisir la manière la plus rentable en fonction des contraintes?
    Qui est prêt à payer pour de la sur-qualité?

  19. #19
    Membre Expert Avatar de LooserBoy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2005
    Messages
    1 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2005
    Messages : 1 083
    Points : 1 868
    Points
    1 868

    Par défaut

    Citation Envoyé par j.peg Voir le message
    Pourquoi parfois? qu'est ce qui justifierait de ne pas choisir la manière la plus rentable en fonction des contraintes?
    Je pensais, par exemple, aux développements que j'ai pu avoir en tâche de fond, parfois en complet sous-marin, pour améliorer le fonctionnement de l'équipe en développant des outils internes, pour remplacer un existant handicapant et fortement ancré dans l'historique de l'entreprise donc ne pouvant pas être remplacé sans avoir une solution "clé en main" et "en béton", ou acquérir la maitrise d'une technologie/technique sans avoir d'application immédiate,...

    Il n'y avait pas de contraintes de temps, ni de cahier des charges, un besoin encore mal délimité,... Se baser seulement sur un concept laisse énormément de liberté sur les choix d'architecture, de technologie,... Il n'y a pas de notion de rentabilité à mes yeux dans ce genre de travail, c'est de la recherche et développement.

    Tout comme la recherche scientifique, certaines de ces recherches aboutiront sur une exploitation réelle et rentable alors que d'autres finiront dans la poussière au fond du placard, pour peut-être être ressorties un peu plus tard, le moment opportun...

    Citation Envoyé par j.peg Voir le message
    Qui est prêt à payer pour de la sur-qualité?
    [exagération]Combien de développements m'a-t-on confié devant faire certaines choses mais si ça pouvait aussi faire le café et ne pas prendre plus de temps à réaliser, ce serait encore mieux...[/exagération]
    S'il n'y a pas de surcoût, je ne vois pas pourquoi on refuserait systématiquement la "sur-qualité".

    Note: La notion de sur-qualité me pose un problème car je pense qu'on ne dois pas penser à la même chose.

    Si c'est dans le sens pourquoi faire simple alors que l'on peut faire compliqué sans que ça n'apporte rien, je suis d'accord, c'est inutile.

    Si par contre, c'est faire un peu réfléchi pour que ce soit plus simple ensuite, je vois vraiment pas le problème. Sans tomber dans l’excès et faire dans le très compliqué sans gagner en simplicité, bien-sûr.
    Vu sur un paquet de cigarettes: "Fumer peut entrainer une mort lente et douloureuse"
    - Vivre aussi... Ce n'est pas forcément moins douloureux et c'est même beaucoup plus lent...

  20. #20
    Membre actif Avatar de straasha
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    juillet 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Conseil

    Informations forums :
    Inscription : juillet 2004
    Messages : 134
    Points : 162
    Points
    162

    Par défaut

    sinon j'avais rencontré ça chez mon ancien client :
    Code Fichier.h :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifdef CONSTANTE_A
    ...
    du code sans entête de fonction ni quoi que ce soit
    ...
    #endif
    #ifdef CONSTANTE_B
    ...
    déclarations comme on en trouve dans un .h classique
    ...
    #endif
    Code Fichier.c :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    au debut :
    #define CONSTANTE_B
    #include "fichier.h"
    #undef CONSTANTE_B
    ...
    plus loin au milieu d'une fonction :
    #define CONSTANTE_A
    #include "fichier.h"
    #undef CONSTANTE_A
    ...
    notez que j'ai simplifié et qu'il y avait en réalité 3 ou 4 sections de codes dans le .h, chacune encadrée par une constante différente et utilisée de cette manière à différents endroits du .c.
    le pire c'est que ça marchait très bien, par contre pour relire...
    il parait que la plume est plus forte que l'épée, heureusement j'ai une hache

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 8 12345 ... DernièreDernière

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
  •