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 :
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
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, " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " "), " ", " ")," ", " ");
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( 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
6
7
8
9
10
11 // pull double spaces itemDesc = stringReplace( stringReplace( stringReplace( stringReplace( itemDesc, " ", " "), " ", " "), " ", " "), " ", " ");
Puis une autre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // pull double spaces itemDesc = stringReplace(stringReplace( stringReplace(itemDesc, " ", " "), " ", " "), " ", " ");
Finalement, il atteint la version de départ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // pull double spaces itemDesc = stringReplace( 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 itemDesc = stringReplace(itemDesc, " ", " ");
L'histoire ne dit pas s'il fut félicité ou remercié pour ce geste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 // pull double spaces regexReplace(itemDesc, "[ ][ ]+", " ");
Avez-vous déjà vécu des situations similaires ?
Partager