Je me sens un peu en conflit en ce moment. J'ai une application web utilisant Stripes pour un framework MVC et Spring/Hibernate pour le back-end. J'ai une méthode d'enregistrement de compte dans ma couche MVC qui nécessite la validation suivante:Dois-je dupliquer la validation dans ma couche MVC et dans la couche Service?
- Nom d'utilisateur est pas déjà pris
- L'adresse e-mail fournie n'est pas déjà associé à un autre compte
J'ai méthode de validation dans Stripes (couche MVC) qui vérifie ces deux cas, mais se demandait si ma couche de service devrait dupliquer ces contrôles? Si l'interface de la couche de service a été exposée en tant que service Web, je pense que la validation serait une bonne idée, mais si elle n'est utilisée que dans le contexte d'une application Web, est-ce nécessaire? Edit: Je n'ai pas l'intention de dupliquer le code de validation - je veux dire dupliquer les appels de méthode de validation à deux endroits.
Je vois mes options:
- Dupliquer les appels de validation dans les deux MVC et couche de service
- uniquement effectuer cette validation dans la couche MVC
- uniquement effectuer cette validation dans la couche de service.
Quelle est la meilleure pratique ici? Je suis à la recherche de conseils/opinions sur quelle option je devrais aller avec et pourquoi. Notez qu'il existe des contrôles de validation simples sur les champs d'entrée du formulaire d'inscription (comme la vérification des blancs) et que je pense que ceux-ci devraient être traités par la validation MVC seulement; Je suis seulement préoccupé par des validations plus complexes.
Oui, je ne veux pas dire que je vais dupliquer le code de validation - je veux dire que je vais appeler le même code de validation en deux endroits – JMM
Comme vous l'avez mentionné, vous avez vraiment besoin de valider deux fois Si vous avez d'autres clients en plus de la couche du contrôleur. Potentiellement, je pourrais voir potentiellement vouloir avoir une logique de validation différente aussi –