Aktywne Wpisy
lunari6 +96
Hej Mirki i Mirabelki,
Od dłuższego czasu przeglądam mirko. Jakiś czas temu miałam okazję pomóc jednemu mirkowi z zaburzeniami lękowymi. Za jego namową założyłam konto. Mam na imię Dominika i jestem absolwentką #psychologia na Uniwersytecie Jagiellońskim. Oferuję szeroko pojętą pomoc psychologiczną w formie online. Pracuję z osobami dorosłymi oraz młodzieżą. Pomagam osobom z zaburzeniami: emocjonalnymi, osobowości, nastroju, odżywiania, osobom o obniżonym poczuciu własnej wartości. Zapraszam serdecznie do kontaktu na priv jeśli jesteście
Od dłuższego czasu przeglądam mirko. Jakiś czas temu miałam okazję pomóc jednemu mirkowi z zaburzeniami lękowymi. Za jego namową założyłam konto. Mam na imię Dominika i jestem absolwentką #psychologia na Uniwersytecie Jagiellońskim. Oferuję szeroko pojętą pomoc psychologiczną w formie online. Pracuję z osobami dorosłymi oraz młodzieżą. Pomagam osobom z zaburzeniami: emocjonalnymi, osobowości, nastroju, odżywiania, osobom o obniżonym poczuciu własnej wartości. Zapraszam serdecznie do kontaktu na priv jeśli jesteście
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Jak mam se domenę, obiekty o znaczeniu biznesowym, które coś se robią, bez używania zewnętrznych rzeczy i mam adaptery, które potrafią np. przekonwertować obiekt domenowy do xml albo na dto albo wyciągnąć obiekt domenowy z bazy to teraz jak to połączyć? Prawidłowe będzie gdy:
stworzę se service, który będzie używał obiektów domenowych i adapterów (zdefiniowanych jako abstrakcji)?
Gdzie umieścić taki serwis? W pakiecie domain czy adapters? A może osobno?
A może to obiekt domenowy powinien używać se adapterów przez abstrakcję, a nie że serwajs jakiś?
@aczutuse: ( ͡° ʖ̯ ͡°) ale zaśmierdziało legacy
@aczutuse: I to jest właśnie zarąbiste w tej architekturze, że samo serce aplikacji nie jest zaśmiecone szczegółami technicznymi integracji z innymi usługami. Polecam przy tym tak samo potraktować bazę danych - jako jedną z opcji integracji, do której wystawiamy adaptery - nieźle rozwiązuje to pokusę pomieszania klas encji z agregatem domeny.
A odpowiadając na pytanie - pakowałbym to do adapters, bo IMHO to adaptery mają wiedzieć co
Przykładowo jeśli twoja firma zajmuje się dostarczaniem rozwiązań do parsowania xml-i, json-ów, csv-ów itd to obiekty wykonujące taką logikę są w rozumieniu DDD dziedziną główną
exception
i wyciagnac go na wierzch?@aczutuse: Dla mnie REST to zwykle też infrastruktura, więc może być w tym samym (⌐ ͡■ ͜ʖ ͡■)
A po co exceptionom jakieś wyjątkowe traktowanie skoro mogą pojawić się w tylko w infrastrukturze i tam będą przechwycone? Domain-driven, a nie stary-tutorial-z-pakietami-wg-rodzajów-obiektów-driven ( ͡° ͜ʖ ͡°)
@PaaD: bedom wywalone do logów i w odpowiedzi restowej (w odpowiedzi opakowywane są w kod błędu jeszcze)...
Dałem se to do application/web.
/application
----/exception
----/web
--------/dto
--------/mapper
--------/TutajMojResorsSeJes.java
/domain
----/entities
----TutajFabrykaSe.java
/infra
----config
----repo
----parser
----TutajSerwajs.java
to szczegół implementacyjny/util więc poza domeną - po co domena ma wiedzieć cokolwiek o warstwie prezentacji/API?
Nie napisałem że masz robić pakiet utils, tylko że
Czemu serwajs jest w warstwie infrastruktury nie aplikacji? Zwykle serwisy aplikacyjne odpowiedzialne za wykonanie jakiegoś use case'a jak nazwa mówi siedzą w warstwie aplikacji, chyba że to jakiś inny serwis, nie wiem. Zwykle jest tak, że web controller woła serwis aplikacyjny albo handler jak używasz CQRS i ten serwis/handler zajmuje się orkiestracją obiektów domenowych. Czyli pobiera agregat z bazy danych wykonuje logikę, zapisuje stan agregatu za pomocą repozytorium i jak trzeba
web
ma referencję doapplication
i jednoczesnieapplication
ma referencję doweb
.Jeśli serwis operuje na DTO i jednocześnie jest wywoływany w kontrolerze to DTO muszą siedzieć w pakiecie
domain/
----/entity
--------Document.java
--------DocumentLine.java
--------DocumentCośtam.java
--------Payment.java
--------PaymentCośtam.java
----/factory
--------DocumentFactory.java
--------PaymentFactory.java
no, ale ma to sens se
Komentarz usunięty przez autora