Obecnie czuję się trochę skonfliktowany. Mam aplikację internetową używającą Stripes dla frameworku MVC i Spring/Hibernate dla back-end. Mam metodę rejestracji konta w moim warstwy MVC, które wymagają następujące Walidacja:Czy należy powielić sprawdzanie poprawności w mojej warstwie MVC i warstwie usługi?
- Nazwa użytkownika nie jest już zajęta
- Podany adres e-mail nie jest powiązany z innym kontem
mam metoda sprawdzania poprawności w paskach (warstwa MVC), która sprawdza te dwa przypadki, ale zastanawiała się, czy moja warstwa usług powinna powielić te kontrole? Jeśli interfejs warstwy usług został ujawniony jako usługa sieciowa, myślę, że sprawdzanie poprawności byłoby dobrym pomysłem, ale jeśli jest używane tylko w kontekście aplikacji sieciowej, czy jest to wymagane?
Edycja: Nie mam zamiaru duplikować kodu walidacyjnego - mam na myśli duplikowanie wywołań metod walidacji w dwóch miejscach.
widzę moje opcje jak:
- Duplikat połączeń walidacji zarówno MVC i warstwy usług
- wykonać tylko ten walidacji w warstwie MVC
- wykonać tylko ten walidacji w warstwie usług.
Jaka jest najlepsza praktyka? Szukam porady/opinii na temat opcji, którą powinienem wybrać i dlaczego.
Należy zauważyć, że istnieją proste kontrole sprawdzania poprawności w polach wejściowych formularza rejestracyjnego (np. Sprawdzanie pustych pól) i uważam, że powinny one być obsługiwane wyłącznie przez walidację MVC; Martwi mnie tylko bardziej złożona walidacja.
Tak, nie mam na myśli, że powielę kod walidacyjny - mam na myśli to, że będę dzwonił do tego samego kodu weryfikacyjnego w dwóch miejscach – JMM
Tak jak wspomniałeś, naprawdę powinieneś zrobić to dwa razy, w przypadku masz innych klientów oprócz warstwy kontrolera. Potencjalnie mogłem zobaczyć, że potencjalnie chce mieć również inną logikę walidacji –