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 |
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 |
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 |
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 |
1 2 3 4 5 | // pull double spaces itemDesc = stringReplace(stringReplace( stringReplace(itemDesc, " ", " "), " ", " "), " ", " "); |
Puis une autre...
Code : | Sélectionner tout |
1 2 3 4 | // pull double spaces itemDesc = stringReplace( stringReplace(itemDesc, " ", " "), " ", " "); |
Finalement, il atteint la version de départ...
Code : | Sélectionner tout |
1 2 | // pull double spaces itemDesc = stringReplace(itemDesc, " ", " "); |
Code : | Sélectionner tout |
1 2 | // pull double spaces regexReplace(itemDesc, "[ ][ ]+", " "); |
Avez-vous déjà vécu des situations similaires ?