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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Katleen Erna
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 547
    Par défaut Que faire lorsque le programmeur qui vous a précédé ne sait pas ce qu'est une itération ? Le cas de Don R
    Que faire lorsque le programmeur qui vous a précédé ne sait pas ce qu'est une itération ? Le cas de Don R

    Don R est un programmeur normal, avec un travail normal, dans une compagnie normale. D'ailleurs, ce matin, c'est son premier jour dans la nouvelle boîte qui vient de le recruter. Confiant, il s'installe à son poste alors que son supérieur vient le voir, pour lui annoncer que le premier cas qu'il aura à traiter sera "facile".

    "Ca sera fait en un rien de temps !", assure-t-il, jovial, à la nouvelle recrue. "C'est un soucis qui arrive régulièrement, et je l'ai déjà arrangé plusieurs fois. Des fois, il y a des descriptions avec trop d'espaces, et quand on envoie un datafeed à la compagnie concernée, ça risque de dérègler leurs systèmes. Mais je suis sûr que tu sauras t'en tirer, c'est un cas de routine pour nous.", termine son patron, lui tappant sur l'épaule.

    L'homme avait raison, le cas était plutôt facile à résoudre...

    Jetez un oeil au code en question :

    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
    // pull double spaces
    itemDesc = 
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
          itemDesc, 
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " ");
    Se demandant pourquoi 24 replacements avaient été utilisés, Don regarda la version précédente...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // pull double spaces
    itemDesc = 
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
          itemDesc, 
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " ");
    Puis, la version antérieure à la version précédente...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // pull double spaces
    itemDesc = 
        stringReplace(
        stringReplace(
        stringReplace(
        stringReplace(
          itemDesc, 
        "  ", " "),
        "  ", " "),
        "  ", " "),
        "  ", " ");
    Une sorte de "suite logique" semblait se faire voir, aussi, il remonta encore d'une version....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // pull double spaces
    itemDesc = stringReplace(stringReplace(
        stringReplace(itemDesc, "  ", " "),
        "  ", " "),
        "  ", " ");
    Puis une autre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // pull double spaces
    itemDesc = stringReplace(
        stringReplace(itemDesc, "  ", " "),
        "  ", " ");
    Finalement, il atteint la version de départ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // pull double spaces
    itemDesc = stringReplace(itemDesc, "  ", " ");
    Bien qu'il fut tenté de rajouter un ligne similaire à celles ajoutées par son patron, Don décida de tout remplacer par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // pull double spaces
    regexReplace(itemDesc, "[ ][ ]+", " ");
    L'histoire ne dit pas s'il fut félicité ou remercié pour ce geste.

    Avez-vous déjà vécu des situations similaires ?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 215
    Par défaut
    Ca fait peur... mais j'ai connu des cas aussi hallucinants moi même donc je sais que ça existe. Malheureusement.

  3. #3
    Membre habitué
    Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Tiens, un article qui aurait pu terminer sur DailyWTF

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il y était déjà :

    http://thedailywtf.com/Articles/A-Spacy-Problem.aspx

    SVP indiquez vos sources, les 3/4 (a vu de nez, je dirai plus) des articles news ne sont que des traductions , sans indiquer la source. OK vous n'êtes pas journaliste et vous voulez partager l'info (et c'est très bien), mais donnez vos sources.

  5. #5
    Membre très actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par défaut
    J'ai connu ça dans une très grosse société... (paramètres de fonctions remplacés par n versions de la fonction aussi) Le code avait de l'âge, ça peut excuser.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Par défaut
    -_- je suis en plein dedans sur en effet une trèès vielle appli -_-

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    J'ai aussi rencontrer ce cas un jour

    Au lieu d'utiliser switch() il utilisait une suite de if else , if else i...... imbriquée !

  8. #8
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Citation Envoyé par Katleen Erna Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // pull double spaces
    itemDesc = stringReplace(itemDesc, "  ", " ");
    Juste pour savoir, c'est sencé faire quoi ce code... parce que bon, je suis aps familier de cette fonction et je ne comprend ni le code de la fin, ni le string replace... Bon , je suis peut etre pas bien reveillé, mais bon...

    ca remplace dans itemDesc un espace par un espace ?

  9. #9
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par défaut
    Citation Envoyé par pmithrandir Voir le message
    Juste pour savoir, c'est sencé faire quoi ce code... parce que bon, je suis aps familier de cette fonction et je ne comprend ni le code de la fin, ni le string replace... Bon , je suis peut etre pas bien reveillé, mais bon...

    ca remplace dans itemDesc un espace par un espace ?
    Un double espace par un seul espace

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 788
    Par défaut re
    excellent

  11. #11
    Membre éclairé
    Avatar de Jcpan
    Inscrit en
    Août 2008
    Messages
    542
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 542
    Par défaut
    Citation Envoyé par Fallen_Leaf Voir le message
    Un double espace par un seul espace
    Oui mais pourquoi autant de fois la répétition ?

    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
    // pull double spaces
    itemDesc = 
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
        stringReplace(stringReplace(
          itemDesc, 
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " "),
        "  ", " "),"  ", " ");
    Dans quel cas est ce que c'est utile ?

  12. #12
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    Dans le cas ou t'as string de départ vaut : "plusieurs espaces"
    et que tu veut que ça valeur soit ramené à : "un seul espace"

    Désolé mais si je mets plusieurs espaces pour vous montrer, le forum n'en affiche qu'un seul

  13. #13
    Expert confirmé
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Par défaut
    le forum doit avoir quelque part un regexReplace qui marche

Discussions similaires

  1. Que faire lorsque le fichier est vide?
    Par bsangoku dans le forum Débuter
    Réponses: 6
    Dernier message: 18/01/2010, 13h46
  2. Que faire lorsqu'une surface est détruite ?
    Par gege2061 dans le forum SDL
    Réponses: 11
    Dernier message: 18/07/2007, 14h27
  3. Que faire lorsque la résolution d'écran est mauvaise ?
    Par gifffftane dans le forum Administration système
    Réponses: 2
    Dernier message: 13/06/2007, 22h30
  4. Que faire lorsque les performances d'une base chute ?
    Par Doctor Z dans le forum Oracle
    Réponses: 11
    Dernier message: 16/02/2005, 14h38

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