O książce dowiedziałem się podczas szkolenia z Domain-Driven Design prowadzonego przez firmę Bottega. Była to jedna z pozycji polecanych przez instruktora Sławomira Sobótkę. Najpierw przeczytałem książkę Erica Evansa w polskim przekładzie. Był to świetny wstęp teoretyczny przed pozycją Vaughna Vernona.

Książka Vernona ukazała się po przeszło dziewięciu latach od premiery pozycji Evansa. Przez ten okres powstało kilka nowych technologii, ułatwiających implementację DDD. Wynikiem tego jest wzrost popularności Domain-Driven Design.

ZAWARTOŚĆ

Książka składa się z 14 rozdziałów:

  1. Wprowadzenie w DDD
  2. Dziedziny, Poddziedziny i Konteksty Ograniczone
  3. Mapy Kontekstu
  4. Architektura
  5. Encje
  6. Obiekty Wartości
  7. Usługi
  8. Zdarzenia Dziedziny
  9. Moduły
  10.  Agregaty
  11.  Fabryki
  12. Repozytoria
  13. Integrowanie Kontekstów Ograniczonych
  14. Aplikacja

Na koniec możemy przeczytać dodatek zatytułowany Agregaty i Źródła Zdarzeń: A+ES

Podobało mi się jak w rozdziale poświęconym architekturze autor książki opisuje sposób na połączenie DDD z stylami architektonicznymi takimi jak: Hexagonal (Ports and Adapters), SOA, REST, CQRS, Event-Driven (Pipes and Filters, Sagas, Event Sourcing),  Data Fabric/Grid-Based.  Co ciekawe Vernon  na konferencji Domain-Driven Design Europe 2017 promował swoją nową książkę pod tytułem: Reactive Messaging Patterns with the Actor Model: Applications and Integration in Scala and Akka. Łączy ona DDD z modelem Actor, jest on przeznaczony dla aplikacji wielowątkowych. Recenzja tej książki pojawi się na moim blogu.

Przykładowy kod zamieszczony w książce w większości jest napisany w języku Java. Autor świadomie podjął taką decyzję i silnie ją argumentuje. Trochę w tej argumentacji oberwało się społeczności Javy. Byłem zdziwiony czytając ten fragment książki. Wydawało mi się, że to środowisko silnie przestrzega dobrych zasad projektowania i programowania. Programiście .Net C# nie powinny przeszkadzać przykłady napisane w Java, te języki semantycznie są bardzo zbliżone. Niech taki błahy powód nie zniechęci was do sięgnięcia po tę świetną książkę.

PODSUMOWANIE

Vernon w swojej książce omawia nowinki, które zapisały się już na stałe do nurtu Domain-Driven Design. Kładzie on silny nacisk na wzorce strategiczne, oddzielając je od wzorców taktycznych. Przez ten zabieg DDD staje się jeszcze bardziej uniwersalne. Łączy on teorię z praktycznymi przykładami. W książce występuje fikcyjna firma, tworząca nowatorskie produkty oparte na modelu Software as a Service(SaaS). Przedstawiony projekt to system zarządzania projektem oparty o metodykę Scrum. Książki najczęściej pokazują najlepsze rozwiązanie. Vernon przyjął inną metodę nauczania. Pokazał jak zespół tworzący przykładowy system uczy się podejścia Domain-Driven Design, przez co popełnia najczęściej spotykane błędy. Ich implementacja ewoluuje do poprawnego rozwiązania. Podoba mi się to podejście. Przypomina prawdziwy proces nauki, zdobywania wiedzy domenowej, budowy systemu.

Książka jest bardzo dobrze napisana przez co czytało się ją bardzo przyjemnie. Vernon starał się nawet wprowadzić wątek humorystyczny poprzez żarty zawarte w logice kowboja. W polskim tłumaczeniu kilka z nich było nawet zabawnych.

DLA KOGO JEST TA KSIĄŻKA?

Vernon w swojej książce świetnie łączy teorie z praktycznymi przykładami. Tytuł tej książki został fatalnie przetłumaczony. Sugerując, że ta pozycja jest przeznaczona wyłącznie dla architektów oprogramowania. Oryginalny tytuł brzmi: Implementing Domain-Driven Design.

Książkę powinien przeczytać każdy zainteresowany Domain-Driven Design.

Autor często cytuje fragmenty książki Erica. Dlatego dla osób, którym nie przeszkadza silny nacisk teoretyczny polecam najpierw przeczytać  książkę:

Domain-Driven Design: Tackling Complexity in the Heart of Software

Polski przekład: Domain-Driven Design. Zapanuj nad złożonym systemem informatycznym

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

Informacje podstawowe:

Autor: Vaughn Vernon

Ilość stron: 672

Rok wydania: oryginał 2013; wersja polska 2016

Tytuł oryginału: Implementing Domain-Driven Design

Źródło okładki: https://helion.pl/ksiazki/ddd-dla-architektow-oprogramowania-vaughn-vernon,dddaro.htm