Bonjour,
J'ai découvert, depuis peu, la puissance des annotations introduites depuis Java 1.5, et je me suis demandé s'il n'était pas possible de simplifier une grande partie du code grace à ces annotations.
Explications : Dans une architecture n-tiers, les validations des données saisies par un utilisateur sont, en général, effectuées dans l'IHM, à l'aide de JavaScript (côté client), ou de validateurs (côté serveur). Ca c'est le cas théorique, mais dans la pratique, on demande souvent de refaire ces validations dans la couche métier, au bénéfice du doute.
Le code du service métier s'en trouve donc alourdi, à plus ou moins juste titre.
Exemple : une fonction qui attend trois entiers positifs ou nul
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public void maFonction(int arg1, int arg2, int arg3) { if(arg1 < 0) { throw new IllegalArgumentException(arg1 + " doit être positif ou nul"); } if(arg2 < 0) { throw new IllegalArgumentException(arg2 + " doit être positif ou nul"); } if(arg3 < 0) { throw new IllegalArgumentException(arg3 + " doit être positif ou nul"); } // Debut de la logique métier ... // Fin de la logique métier return resultat }
=> Est-ce qu'il ne serait pas possible d'utiliser les annotations Java pour faire la vérification des pré-conditions de la fonction appelée ?
Exemple :
Code:
1
2
3
4
5
6
7 public void maFonction(@PositifOuNul int arg1, @PositifOuNul int arg2, @PositifOuNul int arg3) { // Debut de la logique métier ... // Fin de la logique métier return resultat }
J'ai vu qu'il existait un framework (le framework OVal) qui introduisait un bon nombre d'annotations de type "NotNull", "Length", ... Est-ce que vous l'avez déjà utilisé ? Comment le mettre efficacement en place ?
Autre question : qu'est ce que vous pensez de ce style de programmation ?