Ich fühle mich im Moment ein wenig widersprüchlich. Ich habe eine Webanwendung, die Stripes für ein MVC-Framework und Spring/Hibernate für das Back-End verwendet. Ich habe ein Konto Registrierungsverfahren in meiner MVC-Schicht, die die folgende Validierung erfordert:Sollte ich die Validierung in meiner MVC-Ebene und Serviceebene duplizieren?
- Benutzername nicht bereits vergeben ist, wird
- Die angegebene E-Mail-Adresse nicht bereits mit einem anderen Konto
Ich habe assoziiert ein Validierungsmethode in Stripes (MVC-Ebene), die diese beiden Fälle überprüft, aber sich gefragt hat, ob meine Dienstschicht diese Prüfungen duplizieren sollte? Wenn die Service-Layer-Schnittstelle als Web-Service verfügbar gemacht wurde, dann wäre die Validierung eine gute Idee, aber wenn sie nur im Kontext einer Web-Anwendung verwendet wird, ist sie erforderlich?
Edit: Ich beabsichtige nicht, den Validierungscode zu duplizieren - ich meine, die Validierungsmethode an zwei Stellen zu duplizieren.
Ich sehe meine Optionen wie:
- die Validierungs Anrufe sowohl in der MVC Duplizieren und Service-Layer
- Nur diese Validierung in der Schicht MVC ausführen
- Nur diese Validierung in der Dienstschicht durchzuführen.
Was ist die beste Praxis hier? Ich suche Rat/Meinungen zu welcher Option ich gehen sollte und warum.
Beachten Sie, dass es bei den Eingabefeldern des Registrierungsformulars einfache Validierungsprüfungen gibt (wie das Überprüfen von Leerzeichen) und dass diese nur von der MVC-Validierung behandelt werden sollten. Ich bin nur besorgt über komplexere Validierungen.
Yep, ich meine nicht, ich werde den Validierungscode duplizieren - ich meine, ich werde den gleichen Validierungscode an zwei Stellen aufrufen – JMM
Nun, wie du schon erwähnt hast, musst du die Validierung zweimal durchführen Falls Sie neben der Controller-Schicht noch andere Clients haben. Potenziell könnte ich sehen, dass ich möglicherweise auch eine andere Validierungslogik haben möchte –