Présentation du pattern "Error first"
Coder un algorithme (ou une application), c’est bien ! Pourvoir relire le code derrière, c’est mieux !
Problématique
Lorsque nous codons, nous avons une tendance à écrire ceci:
if (condition1) { if (condition2) { if (condition3) { if (condition4) { return lancerOperation(); } else { throw new Exception("Erreur: condition 4"); } } else { throw new Exception("Erreur: condition 3"); } } else { throw new Exception("Erreur: condition 2"); }} else { throw new Exception("Erreur: condition 1");}À première vue, ce code à l’air très très compliqué. En effet, il y a des if () else partout, est il est très compliqué de savoir qui fait quoi.
- Le
elsede la première condition se retrouve en dernier. - Le
elsede la deuxième condition se retrouve en avant-dernier. - Le
elsede la troisième condition se retrouve deuxième. - Le
elsede la quatrième condition se retrouve premier.
Ici le code est très compliqué à lire / relire et pas pratique à maintenir !
De plus, il y a les indentations à prendre en compte : L’indentation, c’est bien, mais le trop d’indentations tue ! Nous avons du mal à distinguer quel code est relié à quel code.
Solution
La solution de ce problème est d’utiliser le pattern error first.
Il s’agit en effet de faire le raisonnement inverse : nous allons commencer uniquement par les erreurs.
Regardons l’exemple qui suit, qui fait exactement la même chose que le code précédent:
if (!condition1) { throw new Exception("Erreur: condition 1");}
if (!condition2) { throw new Exception("Erreur: condition 2");}
if (!condition3) { throw new Exception("Erreur: condition 3");}
if (!condition4) { throw new Exception("Erreur: condition 4");}
return lancerOperation();Magie, voilà un code qui semble plus facile à comprendre ! Pourquoi ? Car nous avons séparé le code, chaque erreur est traitée indépendamment les unes des autres.
Le code binaire généré par la machine est EXACTEMENT le même ! Donc pas de perte de performance à ce niveau là !
Simplifiez les conditions avec les opérateurs logiques et opérateurs ternaires
Découvrez une nouvelle manière de simplifier votre code
Introduction à Vim
Devenez un super développeur grâce à Vim !
Écrivez plus vite en HTML avec Emmet
Ne vous embêtez plus avec les balises !
Introduction aux jobs linux
Gagnez en rapidité avec les jobs