Domain-Driven Design w dzisiejszych czasach jest bardzo popularne. Chciałem się przekonać co powoduje tą popularność, przez co przeczytałem kilka artykułów, oglądałem kursy na Pluralsight, jednak moje zainteresowanie było umiarkowane. Punktem zwrotnym okazało się szkolenie z Domain-Driven Design prowadzone przez firmę Bottega, instruktorem był Sławomir Sobótka. Po jego zakończeniu wiedziałem, że DDD jest dla mnie i chce poszerzyć swoją wiedzę związaną z tą tematyką. Więc postanowiłem przeczytać książkę Erica Evansa. W społeczności Domain-Driven Design ta książka ma miano legendarnej od niej wszystko się zaczęło. Zmieniła ona myślenie na temat tworzenia złożonych systemów z skomplikowaną logiką biznesową.

ZAWARTOŚĆ

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

I. Zastosowanie modelu dziedziny.

Dowiemy 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 tej współpracy powstaje projekt bogaty w wiedzę. Eric opisuje także sam proces modelowania oraz jego techniki.

II. Elementy składowe projektu sterowanego modelem.

Autor podkreśla jak ważna jest izolacja dziedziny od reszty systemu. Do tego celu proponuje architekturę warstwową. Poznamy cykl życia obiektu dziedziny. Dowiemy 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

Eric Evans 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 dowiemy się jak tworzyć interfejsy ujawniające zamiar, funkcje bez efektów ubocznych, zamknięcia operacji oraz zarysy koncepcyjne. Poznamy wzorzec specyfikacji, strategii oraz kompozytu.

IV Projekt strategiczny

Dowiemy się 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. Poznamy metodyki związane z zarządzaniem współpracą teamów tworzących system. Na sam koniec Eric Evans omawia strukturę dużej skali.

Oczywiście nie wymieniłem wszystkich tematów poruszonych w książce.

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

PODSUMOWANIE

Książkę czytało się świetnie. Dużo się z niej nauczyłem i na pewno sięgnę po nią jeszcze wielokrotnie. Następnym razem mam zamiar przeczytać ją w oryginale. Ciężko mi jest wymienić najlepsze rozdziały, wszystkie mi się podobały. Warto tę książkę przeczytać od początku do końca bez pominięcia żadnego z nich.

Przez ogrom zawartej wiedzy książka Erica Evansa wymaga wielokrotnego przeczytania, za każdym razem dowiemy się z niej czegoś nowego.

DLA KOGO JEST TA KSIĄŻKA?

Każdy architekt, project manager, programista, powinien wiedzieć czym jest Domain-Driven Design.

Książka Erica Evansa kładzie silny nacisk na teorię. Nie każdemu może się to podobać. Tym osobom polecam zacząć swoją przygodę z DDD od książki Implementing Domain-Driven Design: Vaughn Vernon (polski przekład nosi tytuł DDD dla architektów oprogramowania). Jej recenzja za jakiś czas pojawi się na moim blogu.

Książkę Erica polecam przede wszystkim osobom zainteresowanym Domain-Driven Design.

Zapraszam na inne recenzje: pisz-kod.pl/recenzje/

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