Encja == domena? mapowanie doctrine , projekcje |
Encja == domena? mapowanie doctrine , projekcje |
7.06.2019, 13:21:27
Post
#1
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 15 Dołączył: 30.08.2011 Ostrzeżenie: (0%) |
Bawię się architekturą hexagonalną, cqrs i mam dwie wątpliwości.
1 czy encję można uznać za model domenowy? mapowanie trzymam w xmlu na poziomie infrastruktury, sama encja nie ma pojęcia, że jest mapowana pod spodem. Jedynie do czego mogę się przyczepić, to wymóg posiadania id przez encję, co trochę się kłóci z modelem domenowym, tak mi się wydaje. 2 do czego tak na prawdę służą projekcję? obecnie spotkałem się z wykorzystaniem ich do budowy viewObiectów i zwracania ich. Mógłbym prosić jakiś przykład? 3 czy budując widok w warstwie aplikacji, tworzymy osobne interfejsy które będą implementowane w warstwie infrastruktury ? Przykłąd klasa user jako obiekt domenowy. Potrzebujemy wyciągnąć obiekt z bazy danych. Więc w warstwie aplikacji tworzymy obiekt widoku który będzie zwracany w repozytorium. O co mi chodzi, o to czy chcąć pobrać jakieś dane o użytkowniku powinniśmy tworzyć niezależną klasę w warstwie infrastruktury od klasy która np dodaj użytkowników do bazy ? Czy wszystko można władować np w klasę user. Wtedy będzie ona odpowiedzialna za dodaawanie, pobieranie danych itd. Takie repozytorium infra: doctrine: orm: user implements UserWrite {pfunction: add, update etc} dbal userViewDbal implements userQuery - z warstwy aplikacji pfucntion getby... (return new UserView() Ten post edytował Boshi 7.06.2019, 13:44:34 |
|
|
7.06.2019, 17:26:35
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat 1 czy encję można uznać za model domenowy? mapowanie trzymam w xmlu na poziomie infrastruktury, sama encja nie ma pojęcia, że jest mapowana pod spodem. Jedynie do czego mogę się przyczepić, to wymóg posiadania id przez encję, co trochę się kłóci z modelem domenowym, tak mi się wydaje. Możesz uznać wszystko za wszystko. Nie ma jednej precyzyjnie zdefiniowanej drogi i nie każdy program musi wyglądać tak samo. Jeśli już się uprzesz to encja jest jednym z bloków (wg DDD i building blocks), więc jest elementem dziedziny. Jeśli nie potrzebujesz id to je usuń a jeśli jest Ci potrzebne to zostaw, nie przyjdzie do Twojego domu inkwizycja sprawdzać czy encja ma "sztuczne" id czy nie. Cytat 2 do czego tak na prawdę służą projekcję? obecnie spotkałem się z wykorzystaniem ich do budowy viewObiectów i zwracania ich. Mógłbym prosić jakiś przykład? Projekcje to raczej z event sourcingu, służą do przedstawienia stanu domeny i faktycznie użycie ich ma sens tylko w widoku. Przykładów w internecie jest wystarczająco. Cytat 3 czy budując widok w warstwie aplikacji, tworzymy osobne interfejsy które będą implementowane w warstwie infrastruktury ? Tego pomysłu chyba nie rozumiem, a w podanym przykładzie to już wszystko jest wymieszane ze wszystkim. |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 12:28 |