Code du jour: Developpeur 1, Crise 0

Publié le 10 mars 2009 par Wtf

C'est la crise ! Développeurs, augmentez vos lignes de code pour conserver votre job ! Plus le code est long et inutile, plus vous aurez de jours de travail nécessaire pour le maintenir. Et puis, si ça a été dur à développer, il faut bien que ça soit dur à relire non ? Le développeur qui a produit le code que Quentin doit aujourd'hui maintenir avait certainement pressenti la crise arriver...

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...