Warstwa pomiędzy DAO i API

0

Czołem!

Słyszałam o podejściu, gdzie nie powinno się bezpośrednio wstrzykiwać obiektu DAO do API. Powinna być dodatkowa klasa pośrednicząca pomiędzy tymi elementami.
Co sądzicie o takim podejściu? Powinno się tak robić? Dlaczego? Jakieś przykłady implementacyjne? Polecicie coś do poczytania na ten temat?

4

Proponuje się nie przejmować i kodować swoje.

Te historie o podejściu gdzie się powinno lub nie powinno to zwykle wyglądają tak jak w podanym artykule.
https://joemonster.org/art/19319

Przy okazji - artykuł to bzdura, małpy nie są takie głupie. Ale ludzie w IT niestety.

Jeśli nie robisz akurat oprogramowania do lotu na marsa, to polecam po prostu zepsuć, sparzyć się. Wskazany przez Ciebie problem istnieje, ale nie ma prostego rozwiązania w postaci: rób warstę, nie rób warstwy. To zależy

0

Jak masz Generic Cruda to nie widzę sensu robienia dodatkowej warstwy tylko po to żeby była. Jeśli faktycznie masz kontroler który bezpośrednio wypycha na świat dane z repozytorium/dao to tak zrób.

2

Przede wszystkim odpowiedz sobie na pytanie "jaki (Twój) problem rozwiąże wprowadzenie tej dodatkowej warstwy".

0

Warstwa pośrednia jest Ci potrzebne jeśli wykonujesz np jakieś obliczenia na danych. Coś wiecej niż tylko select do bazy, jak na przykład wygenerowanie jakiegos raportu.
API przyjmuje request
środkowa warstwa analizuje jakie dane potrzebuje
DAO pobiera dane
środkowa warstwa obrabia te dane, filtruje, cos tam oblicza
API zwraca wynik

Jesli tylko pobierasz dane to nie ma sensu się bawić

0

Taka warstwa jest jak najbardziej dobrą praktyką (nawet jeżeli miałaby tylko pośredniczyć w wypychaniu tych samych danych). Nie wiadomo jak aplikacja będzie się rozwijała w przyszłości a w ten sposób kontroler pozostanie zawsze "cienki". Pewnie też jakieś testy trzeba będzie napisać w przyszłości, a zawsze łatwiej potem testować taką klasę niż kombinować coś z metodami kontrolera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1