I watched Greg Young talk about DDD on InfoQ. Here are my notes on the talk.
- Only use domain driven design on appropriate projects. Most projects are not suitable.
- Use state transition event streams to communicate between different bounded contexts.
- Bounded contexts are one of the very keys of domain driven design. The same word may have different meanings in different contexts, and this is OK.
- Use OO, avoid setters. Objects have behaviors, not shapes.
- If you always have valid objects, you avoid the problem of having to check if an object is valid all the time. IsValid is not the solution.
- Always use the domain experts and end-users language.
- Separating commands from queries gives the benefit of eventually consistent, queries may read from a different place than the commands.
- Coupling is not a problem, if it's in the same layer.
- Model the view, such as screens, as reports, with no transactional behavior.
- Explicit state transitions remove the need for auditing. They are the audit.
No comments:
Post a Comment