Rough notes. Please watch the original presentation.
- DDD usually requires two approaches: Strategic Design and Tactical Design
- Artifacts should be grouped by (business) context rather than by kind
- When packages of different contexts need to communicate with each other, an Anti-Corruption layer can be introduced.
- Value Type (Value Object)
- Repository Pattern
- A domain struct should not be created with invalid state, nor should it be allowed to have its state invalidated during runtime.
A Value Type is equivalent to the Value Object pattern in OOP languages.
- Decouples the domain layer from the data layer. Should the data source change, the domain will not be impacted assuming it’s using this pattern.
- Facilitates testing without the need of a real database / service.