Domain-Driven Design. Zapanuj nad złożonym systemem informatycznym

Domain-Driven Design w dzisiejszych czasach jest bardzo popularne. Skrót DDD zna prawie każdy programista. Jednak zapytany o szczegóły posiada niestety szczątkową wiedzę opartą o wpisy na blogach. Żeby nie było, sam prowadzę bloga, więc do blogerów nic nie mam. Jednak prawda jest taka, że najczęściej blog to streszczenie informacji. Świetnie się sprawdza przy zdobywaniu podstawowej wiedzy lub zachęceniu do zanurzenia się w lekturę. Nie da się w kilku wpisach streścić kilkuset stronicowej książki. Artykuły mają zachęcić do zagłębienia się w temat i odkrywanie wiedzy samemu. Dobrze też spisują się jako odświeżenie podstawowej wiedzy, nie powinny być jednak traktowane jako zamiennik. Niestety ludzie dzisiaj są bardzo leniwi i mało kto czyta książki. To jest bardzo duży błąd i mam szczerą nadzieję, że nie należysz do tego grona.

O DDD pierwszy raz usłyszałem coś w okolicach 2016 roku. Natomiast na poważnie zabrałem się za naukę i zbieranie doświadczenia po odbyciu szkolenia. Prowadzącym był Sławomir Sobótka. Przez kilkanaście miesięcy nabierałem wprawy, modelując domenę systemu przeznaczonego dla laboratoriów patomorfologicznych. Nauczyłem się dużo, oczywiście popełniając przy tym chyba wszystkie standardowe błędy. Uważam, że jeszcze sporo nauki przede mną. Nie odpuszczam i dalej rozwijam się w tej tematyce, łącząc zdobytą wiedzę z innymi zagadnieniami, tak by projektować i tworzyć coraz lepsze systemy informatyczne.

Książka Erica Evansa pomoże ci w zrozumieniu czym jest DDD. Poznasz teorię, którą będziesz musiał przyswoić w praktyce. Jeśli Domain-Driven Design ci się spodoba, to z pewnością tak jak ja przeczytasz, tę pozycję kilka razy. Do czego cię gorąco zachęcam.

Z doświadczenia wiem, że warto nauczyć się DDD, to się sprawdza. Tylko jak zawsze jest jeden haczyk, trzeba umieć projektować i modelować systemy dobrze i nie skupiając się wyłącznie na technikaliach.

ZAWARTOŚĆ

Książka Erica jest podzielona na cztery części:

I. Zastosowanie modelu dziedziny.

Dowiesz się, czym jest model dziedziny. Autor argumentuje przydatność modelu dla projektu. Zaznacza jak ważna, jest współpraca ekspertów domenowych z programistami, którzy powinni posługiwać się wspólnym językiem. Dzięki niej powstaje projekt bogaty w wiedzę. Eric opisuje także sam proces modelowania oraz jego techniki.

II. Elementy składowe projektu sterowanego modelem.

Eric podkreśla, jak ważna jest izolacja dziedziny od reszty systemu. Do tego celu proponuje architekturę warstwową, która jest już zdecydowanie przestarzała jak na dzisiejsze standardy. Nie ma co się jednak dziwić, książka została napisana w 2003 roku.

Poznasz cykl życia obiektu dziedziny. Dowiesz się, czym są encje, wartości, usługi, moduły, agregaty, fabryki, repozytoria oraz dlaczego w Domain-Driven Design dominuje paradygmat obiektowy.

III. Refaktoryzacja ku głębszemu zrozumieniu

Autor skupia się na udoskonalaniu modelu dziedziny. Poleca on czytanie książek związanych z dziedziną, opisuje sam proces odkrywania, moment przełomowy, poziomy refaktoryzacji. Wszystko to ma na celu uzyskanie dogłębnego modelu dziedziny. Dodatkowo poznasz się jak tworzyć interfejsy ujawniające zamiar, funkcje bez efektów ubocznych, zamknięcia operacji oraz zarysy koncepcyjne. Poznasz wzorzec specyfikacji, strategii oraz kompozytu.

IV Projekt strategiczny

Zapoznasz się z tym jak tworzyć mapę kontekstów, jak utrzymać integralność modelu, czym jest jądro współdzielone, kontekst związany, warstwa zapobiegająca uszkodzeniu, dziedzina główna. Posiądziesz wiedzę o metodykach związanych z zarządzaniem współpracą zespołów tworzących system. Na sam koniec Eric Evans omawia strukturę dużej skali.

Co ciekawe styl projektowania Erica został zainspirowany przez  Responsibility-Driven Design (Rebeka Wirfs-Brock) oraz Design by Contract (Bertrand Meyer).

PODSUMOWANIE

Książkę przeczytałem już kilka razy, za każdym razem odkrywając coś nowego. Kolejny puzzel układanki wskakiwał na swoje miejsce. Dużo się z niej nauczyłem i na pewno sięgnę po nią jeszcze wielokrotnie. Nie czytaj wybiórczo rozdziałów, tę pozycję powinno się przyswajać od deski do deski.

Postanowiłem sobie odświeżać warte moim zdaniem uwagi książki o DDD co roku. Co mi się w miarę udaje. Jest to świetny sposób na pogłębianie tej fascynującej tematyki.

Książka Erica Evansa kładzie silny nacisk na teorię. Nie każdemu może się to podobać. Jednak w pewnym etapie nauki, poznanie teorii jest wręcz wymagane. Nie warto samemu odkrywać koła na nowo. Wykorzystaj wiedzę innych ludzi. W kilka wieczorów możesz przyswoić miesiące, a nawet lata pracy autora. Naprawdę warto.

Mam szczerą nadzieję, że zachęciłem cię do przeczytania tej legendarnej już pozycji. Nie wyobrażam sobie projektowania i tworzenia systemu informatycznego bez Domain-Driven Design. Moim zdaniem wiedza w tym zakresie jest bardzo wartościowa i przydatna.

Informacje podstawowe:

Autor: Eric Evans

Ilość stron: 584

Rok wydania: oryginał 2003; wersja polska luty 2015

Tytuł oryginału: Domain-Driven Design: Tackling Complexity in the Heart of Software

Źródło okładki: https://helion.pl/ksiazki/domain-driven-design-zapanuj-nad-zlozonym-systemem-informatycznym-eric-evans,domdri.htm

0 0 głosuj
Article Rating
Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
Wyświetl wszystkie komentarze
0
Masz jakieś przemyślenia napisz :)x
()
x