Depuis maintenant 3 mois, j'ai le "plaisir" de travailler sur la remise à flots d'un projet Java/J2EE. Les délais ont été explosés, les soucis de performances sont constants et la base de code fait peur à voir. Duplication de code, syndrome NIH, métriques qui crèvent le plafond, sans parler de tout le code écrit au mépris des plus simples règles de programmation.
Ce matin, j'ai mis les mains dans la partie s'occupant de l'internationalisation des messages et ai découvert la façon particulière dont le précédent développeur formatait ses textes i18n. Jugez plutôt :
public String getProperty(String key) { if (properties != null){ return properties.getProperty(key); } return null; } public String getDynamicProperty(String key, String param0) { String prop = getProperty(key); String retour = prop; if (prop != null){ retour = prop.replaceAll("\\{0\\}", param0); } return retour; } public String getDynamicProperty(String key, String param0, String param1) { String prop = getDynamicProperty(key, param0); String retour = prop; if (prop != null){ retour = prop.replaceAll("\\{1\\}", param1); } return retour; } public String getDynamicProperty(String key, String param0, String param1, String param2) { String prop = getDynamicProperty(key, param0, param1); String retour = prop; if (prop != null){ retour = prop.replaceAll("\\{2\\}", param2); } return retour; }
etc...
J'imagine que le précédent développeur a oublié de regarder l'API du JDK et plus précisément MessageFormat, et ne connait pas les varargs...