En travaillant sur un programme au boulot hier, je suis tombé sur un morceau de code Java qui m'a fait mal aux yeux. C'était une bête fonction de nettoyage d'un champ de saisie dans un formulaire de recherche (genre là où vous écrivez quand vous cherchez quelque chose sur G**gle).

Ce qui m'a fait tiquer, c'est que tout était fait avec des chartAt(i). Pour vous expliquer rapidement, il remplaçait des lettres caractère par caractère alors qu'il existe des moyens pour le faire beaucoup plus simplement. Du coup, je me suis dit que je pouvais peut-être améliorer ça, pour gagner en rapidité et en simplicité.

Après y avoir passé une bonne heure, je me suis rendu compte que la personne qui avait fait ça s'était peut-être bien embêté à le faire, mais que c'était au final la solution la plus efficace (en temps de traitement). C'était une bonne leçon d'humilité, et je me suis alors souvenu de ce que disais mon professeur de Génie Logiciel :

Rien ne sert de chercher à optimiser une petite fonction. L'important, c'est d'optimiser l'architecture générale du programme.