Zdroje a další četba
Vybraná literatura, články, videa, repozitáře a kurzy k Domain-Driven Design a CQRS – primární i sekundární zdroje, na které průvodce odkazuje.
Obsah kapitoly
Seznam je kurátorský, ne vyčerpávající. Zařazené zdroje mají buď referenční hodnotu (Evans, Vernon, Fowler), nebo přidávají něco, co jinde nenajdete. U každé položky je krátce uvedeno, proč v seznamu je.
A Knihy
-
01
Domain-Driven Design: Tackling Complexity in the Heart of Software
Zakladatelská kniha. Definuje pojmy Ubiquitous Language, Bounded Context, Aggregate a celý slovník strategického i taktického designu. Stále nejdůležitější primární zdroj.
-
02
Implementing Domain-Driven Design
Praktické pokračování Evanse. Konkrétní implementační vzory, příklady agregátů, integrace mezi kontexty a propojení s CQRS i Event Sourcingem.
-
03
Domain-Driven Design Distilled
Stručný výtah hlavních konceptů. Vhodný úvod, pokud váháte, jestli investovat čas do celé Implementing DDD.
-
04
CQRS Documents
Sbírka původních textů autora, který pojem CQRS zavedl. Hutně vymezuje, co CQRS je a co není, včetně vztahu k Event Sourcingu.
-
05
Learning Domain-Driven Design
Pohled s odstupem 18 let od Evansovy knihy. Klade větší důraz na strategický design a na rozhodování, kde se DDD vůbec vyplatí. Dobrý doplněk k Evansovi.
B Články
-
01
CQRS
Krátké a přesné vymezení vzoru. Mimo jiné jasně říká, kdy se nehodí.
-
02
Bounded Context
Definice pojmu z pera autora, který ho zpopularizoval mimo DDD komunitu. Hodí se jako podklad, když koncept vysvětlujete netechnickému publiku.
-
03
Vertical Slice Architecture
Argument pro vertikální řezy místo horizontálních vrstev. Týká se organizace kódu uvnitř Bounded Contextu.
-
04
Explicit Architecture: DDD, Hexagonal, Onion, Clean, CQRS
Pokus o syntézu několika architektonických škol do jedné konzistentní mapy. Pomáhá zorientovat se v terminologickém zmatku.
-
05
Implementing DDD, CQRS and Hexagonal Architecture in Symfony
Konkrétní průchod skládáním DDD, CQRS a hexagonální architektury v Symfony. Hodí se ke srovnání s řešeními v této příručce.
C Videa a přednášky
-
01
Tackling Complexity in the Heart of Software
Stěžejní Evansova přednáška z DDD Europe. Zkrácený výklad stejnojmenné knihy, za necelou hodinu vysvětlí motivaci celého přístupu.
-
02
CQRS and Event Sourcing
Greg Young prakticky: kdy oddělit commandy od queries a kdy jít až k úložišti založenému na událostech.
-
03
Vertical Slice Architecture
Videoverze stejnojmenného článku z konference NDC, včetně odpovědí na typické námitky.
-
04
DDD Europe – záznamy z konferencí
Každoroční konference v Amsterdamu, dnes hlavní setkání DDD komunity. Stovky záznamů, převážně silné přednášky od praktiků.
-
05
Symfony Messenger – screencast
Praktická série o Messengeru od základů po pokročilé scénáře (async transport, middleware, CQRS bus). Pokud Messenger používáte denně, vyplatí se.
D GitHub repozitáře
-
01
php-ddd-example
Referenční implementace hexagonální architektury, DDD a CQRS v PHP nad Symfony. Pečlivě udržovaná, dobrá jako inspirace pro strukturu složek.
-
02
symfony-7-es-cqrs-boilerplate
Boilerplate s plnou implementací Event Sourcingu a CQRS v Symfony. Pokud začínáte, dobrá kostra k orientaci.
-
03
dddinphp/ddd
Příklady kódu z knihy Domain-Driven Design in PHP. Mírně staršího data, ale obsahově konzistentní s Vernonem.
-
04
Sylius/Sylius
Produkční e-commerce platforma postavená na Symfony s DDD principy. Užitečná jako reálný příklad rozsáhlého kódu, ne jen teoretická ukázka.
E Online kurzy
-
01
Domain-Driven Design Fundamentals
Úvodní kurz pokrývající strategický i taktický design. Přestože je v C#, koncepty jsou jazykově neutrální.
-
02
CQRS in Practice
Praktická aplikace CQRS krok za krokem, vč. čistého oddělení čtecího a zápisového modelu. Vhodné po základech DDD.
-
03
DDD in PHP
Kurz od stejného týmu, který stojí za referenční implementací výše. Aplikuje DDD a hexagonální architekturu konkrétně v PHP.
F Komunity
-
01
DDD Community
Oficiální stránky komunity založené Ericem Evansem. Reference, články a odkazy na konference.
-
02
DDD Meetup Groups
Adresář DDD meetupů po celém světě. Pokud cestujete, pravděpodobně někde v okolí najdete živou skupinu.
-
03
Symfony Community
Slack kanál, SymfonyCon, lokální meetupy. Pro otázky kolem frameworku, ne čistě DDD.
G Oficiální dokumentace
-
01
Symfony Documentation
Hlavní rozcestník oficiální dokumentace Symfony.
-
02
Symfony Messenger
Kniha na Messengeru staví command, query i event bus. Hlavní referenční dokumentace.
-
03
Symfony & Doctrine ORM
Persistence doménových objektů v Symfony. Praktická referenční dokumentace pro každodenní práci.
-
04
Symfony Validator
Validace na hranici aplikace. Pozor – invariant uvnitř agregátu patří do agregátu, ne do Validatoru.
-
05
Symfony Event Dispatcher
Synchronní události v jednom procesu. Kniha ho používá pro technické háčky frameworku (kernel eventy, Doctrine lifecycle). Doménové události uvnitř kontextu vede synchronní
event.busMessengeru.