DDD je o doméně, modelování, ale bez kódu to nejde. Na 4. kurzu se naučíte implementovat value objekty (immutable, side-effect free, closure of operations) a entity a ukážeme si, jak veškerý kód psát pomocí TDD.
V druhé části si představíme rozdělení vrstev domény a infrastruktury, implementujeme doménové rozhraní a ukážeme si, jak psát testy na rozhraní.
Ve fakturační doméně rozebereme koncept peněz a implmentaci pomocí vlastních value objektů a existujících knihoven.
5. Immutable
• Příjmá stav pouze v konstruktoru
• Umožňuje posílat VO tam a zpět
systémem
• Použití bez obav
• Snižuje potřebu přemýšlení
– Může to někdo změnit?
– Můžu to poslat?
– Musím to klonovat?
– Když to naklonuju, co na to
Doctrine?
10. Side-effect free
• Pro stejné vstupy vrací stejné
výstupy
• Nezávisí na globálním stavu ani
jej nemění
• Snižuje potřebu přemýšlení
• Volání funkce lze nahradit
výsledkem
– Cachování
29. Peníze jako VO
• Snadná implementace
• Přesně pro naše případy užití
30. Co použít pro
peníze
• Knihovnu pokud přesně odpovídá naší
doméně
– Ušetří nám čas
– Řeší záludnosti
• Vlastní implementaci
– Výukové účely, pochopení problémů
– Pokud je knihovna kanón na vrabce