Aktywne Wpisy

dwa__fartuchy +327
Cześć Koleżanki i Koledzy, dawno mnie tu nie było (ʘ‿ʘ) Jak żyjecie?
Praca w aptece w małym mieście to jest jakiś inny stan umysłu :D
#dwafartuchywaptece #apteka #medycyna #pracbaza #farmacja
Praca w aptece w małym mieście to jest jakiś inny stan umysłu :D
#dwafartuchywaptece #apteka #medycyna #pracbaza #farmacja
źródło: 009303B9-5844-4A51-AEEF-AD2CA145CAA7
Pobierz
sforce +69
#gielda jesteście za podatkiem katastralnym od 3 mieszkania? Szczerze mówiąc, pomimo ze mam bardziej wolnościowe poglądy to takie opodotakowanie nie byłoby głupie, częśc ludzi pomyślałoby o innych formach inwestycji .





Próbuję wdrożyć w dużym projekcie na backendzie architekturę typu
route -> controller -> service.Controller otrzymuje req i res, i wywołuje services (które są zwykłymi funkcjami komunikującymi się z bazą), a potem zwraca to co dostał od danego service.
Powiedzmy że mam w bazie dwie tabele - users i pets. User może mieć wiele petów, więc tabela pets ma foreign key usera.
I teraz co zrobić jeśli chcę usunąć usera?
1. W controllerze wywołać z service Pet funkcję deletePetsOfUser, a potem z service User funkcję deleteUser.
2. W controllerze wywołać z service User funkcję deleteUser, która wywoła w sobie z service Pet funkcję deletePetsOfUser, a potem bezpośrednio usunie usera.
3. W controllerze wywołać z service User funkcję deleteUser, która bezpośrednio usunie zarówno pety usera jak i samego usera.
Co będzie lepszym rozwiązaniem jeśli chodzi o logikę, utrzymanie i zrozumienie kodu?
Ja generalnie uważam, że w controllerze nie powinno być zbyt dużo logiki.
Czy masz możliwość w UserService wrzucić PetService? Ja bym to zrobił tak, że funkcja UserService.deleteUserWithPets () wywołuje PetService.deletePets(), a następnie this.deleteUser().
Komentarz usunięty przez autora
@Cebulaczon10: To usuwanie usera jest tylko przykładem i mógłbym tu faktycznie użyć casacde. Równie dobrze mogłaby tu być zupełnie inna czynność niezwiązana z usuwaniem. Ale mi bardziej chodzi cały sposób podejścia do problemu.
W repository będziesz miał tylko i wyłącznie metody odpowiadające za komunikację z bazą danych (get, getBy, insert, update, delete, deleteBy itd) dla konkretnej tabeli. Czyli np. UserRepository działa na tabelce 'users'.
W UserService będziesz miał UserRepository i inne serwisy, które będą Ci