29. Domain Driven Design Essentials: Domain Service
W ramach mini-serii Domain-Driven Design Essentials rozmawialiśmy do tej pory o wzorcu Value Object. Dziś z Kubą Pilimonem rozmawiamy o kolejnym wzorcu taktycznego DDD, a konkretnie o serwisie domenowym. A w rozmowie poruszamy dziś następujące tematy: - czym właściwie jest Domain Service? - jaki kod można w nim osadzić i jak to identyfikować? - pojawi się oczywiście kilka różnych przykładów.
Mariusz witamy gościa Kuba, który był ostatnio w podksiecie w odcinku 16. Rozmowa zaczyna się od osobistych spraw Kuby.
Kuba opowiada o swoich doświadczeniach z legacy systemami, takimi jak ośmiotysięczniki i Nepal. Analiza problemów związanych z architekturą tych systemów i jej porównanie z problemami w kodzie i systemach w dzisiejszej praktyce.
Kuba wprowadza w temat serwisu domenowego, wyjaśnia jego definicję i powtarza, że jest to część kodu, która enkapsuluje logikę domenową, nie pasującą do istniejących agregatów.
Kuba omawia testowanie serwisu domenowego, podkreślając, że jest to jednostkowy test, który może być łatwo przetestowany w pamięci operacyjnej. Przykłady zastosowania serwisu domenowego do konsolidacji pożyczek.
Kuba wprowadza w zasadę Pure Fabrication, wyjaśniając, że to jest sztuczny byt, który nie istnieje w świecie rzeczywistym, ale pomaga w zredukowaniu wiązania między klasami i zwiększeniu kohezji.
Kuba omawia kryteria identyfikujące serwis domenowy, takie jak trudność z osadzeniem logiki w value objectie lub agregacie, brak stanu do zapisu w bazie danych. Przykłady zastosowania serwisu domenowego do konsolidacji pożyczek i agregowania informacji z różnych banków.
Kuba opowiada o doświadczeniach związane z emocjami w programowaniu, takimi jak wkurzenie się z kodu, który nie pasuje do naszych oczekiwań. Analiza wpływu emocji na projektowanie i design kodu.
Kuba podsumowuje rozmowę i podaje dalsze tematy do omówienia, takie jak serwis aplikacyjny i implementacyjne wzorce, takie jak ENCIA, repozytorium i fabryka.
Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.