Encje domenowe to obok Value Objectów jeden z podstawowych wzorców implementacyjnych Domain-Driven Design. Mogą działać zarówno samodzielnie, jak i być częścią innych struktur, np. agregatów. Ale czym adekwatnie są encje i co odróżnia je od pozostałych wzorców taktycznego DDD?
W telegraficznym skrócie encje to obiekty domenowe posiadające ściśle określoną tożsamość, które z jakiegoś powodu muszą być śledzone na przestrzeni czasu. Gościem dzisiejszej rozmowy jest Kamil Grzybek, który pojawił się już w Better Software Design przy okazji rozmów o modularyzacji monolitu czy testowalności oprogramowania.
W tym odcinku rozmawiamy między innymi o:
- przeznaczeniu wzorca Entity,
- różnych metodach nadawania tożsamości obiektom,
- podziałach encji względem cykli życia w domenie,
- różnicach pomiędzy encjami a agregatami czy Value Objectami,
- mapowaniu encji domenowych na encje bazodanowe.
Zapraszam!
Materiały dodatkowe:
- Implementing Domain-Driven Design, rozdział 5 poświęcony encjom domenowym
- What Is the Hi/Lo Algorithm?, artykuł na temat algorytmu Hi/Lo do generacji identyfikatorów
- Entity Identity vs Database Primary Key
- Modular Monolith with DDD, repozytorium Kamila, w którym moduły korzystają ze wszystkich wzorców omawianych w odcinku wzorców taktycznych