ddd-course icon indicating copy to clipboard operation
ddd-course copied to clipboard

Domain-Driven Design Course. Materials in English. Recorded lectures/workshops + slides in Czech only! All the code:

Domain-Driven Design Course

DDD logo

Domain-Driven Design... A practical approach to software development that focuses on target problematics - the domain. DDD is about thinking, looking at the problem from different angles and also about modeling. It isn’t connected to any framework, technology or a concrete programming language.

The course itself is in Czech (by the way online and free), however supporting materials are at least in English

  • Overview
  • Language
  • Model
  • Implementation
  • Persistence

Demo

We created useful code examples during the workshop part of the course. You can find it in the ddd-course-workshop repository.

Kurz Domain-Driven Design

Domain-Driven Design... praktický přístup k vývoji software zaměřený na cílovou problematiku - doménu. DDD je o přemýšlení, náhledu a modelování, není spojený s žádným frameworkem, a vlastně ani žádnou technologií či konkrétním programovacím jazykem.

Cíle

  • Jak přemýšlet nad problémy libovolné složitosti
  • Jak je modelovat
  • Na co se zaměřit a co zanedbat
  • Jak psát kvalitní, udržovatelný a otestovaný kód

Forma

  • Záznamy + Materiály + Kód
  • Zdarma

Přednášky

  1. Přehled - materiály (en) - slidy - záznam Brno - záznam Ostrava - Ostrava 12.9. - Brno 3.10.
  2. Jazyk - materiály (en) - slidy - záznam Brno - workshop - Ostrava 10.10. - Brno 24.10.
  3. Model - materiály (en) - slidy - záznam Brno - workshop - Ostrava 7.11. - Brno 21.11.
  4. Implementace - materiály (en) - demo - slidy - záznam Brno - Brno 19.12.
  5. Persistence - Repozitáře + Doctrine - materiály (en) - demo - slidy - záznam Brno - Brno 16.1.
  6. Read model & CQRS - slidy - záznam Brno - Brno 13.2.

Demo

Veškerý kód z dem a workshopů naleznete v repozitáři ddd-course-workshop.

Probraná témata

  1. ✓ Přehled - přehled základních konceptů
  2. ✓ Jazyk - pár příkladů a pár doporučení jak přemýšlet v daném jazyce
  3. ✓ Model - jak přemýšlet jinak než v tabulkách, zjednodušení modelu (agregáty, entity, value objekty)
  4. ✓ Implementace - kód, testování, TDD
  5. ✓ Repozitáře - kde brát objekty, memory implementace
  6. ✓ SQL/Doctrine Repozitáře - Persistence, už skoro funkční aplikace
  7. ✓ Read model - Jak nad ním přemýšlet, více modelů v jedné aplikaci
  8. ✓ Read model SQL Repozitář - kde brát DTO v reálné aplikaci
  9. ✓ Commandy - Oddělení části aplikace měnící stav

Cílová skupina

  • Programátoři
  • Projekťáci
  • UXáci
  • Testeři

Ano, DDD není jenom pro programátory, je pro celou IT sféru, a možná zasahuje i dále. Nelze totiž modelovat případy užití pokud má projekťák všechno jako tabulku. Musíme být všichni naladěni podobně.

Další materiály

  • EVANS, Eric. Domain-driven design: tackling complexity in the heart of software. Boston: Addison-Wesley, 2004. ISBN 0-321-12521-5. kniha na Amazonu
  • FOWLER, Martin. UbiquitousLanguage. MartinFowler.com [online]. 2006 [2017-11-28]. Available: https://martinfowler.com/bliki/UbiquitousLanguage.html
  • VERNON, Vaughn. Implementing domain-driven design. Upper Saddle River, NJ: Addision-Wesley, 2013. ISBN 978-0-321-83457-7. kniha na Amazonu
  • CLEMSON, Toby. Testing Strategies in a Microservice Architecture [online]. 2014 [2018-01-11]. Available: https://martinfowler.com/articles/microservice-testing/
  • Sbírka materiálů od Honzy Kuchaře: https://gitlab.grifart.cz/jkuchar1/eventsourcing-cqrs-simple-app/tree/master