Domain-Driven Design – art of writing a good code (production ready example)
github.com
github.com
- KISS and YAGNI rules are broken frequently
- abuse of inheritance that makes even trivial classes harder to read
- some usage of boxed types feels incorrect, if null is meaningful it should at least have some comment
- confusing packages (like .ddd.domain vs .domain), would be nice to document what packages mean in readme
Regarding to other issues, could you add little bit more concrete details just to check and consider possible solutions.
* there are imports for Spring in the domain code (is Spring part of your domain?)
* you are using a mock framework in some domain tests
Also I am not sure I understand the "domain" and "ddd" packages. I am a huge supporter of splitting a "domain" package from a "application" package like you did, but then not sure where the ddd stands
Q: You are using a mock framework in some domain tests A: Yes. Can you write some pros/cons regarding to this.
"domain" is real domain that contains business logic, "ddd" should be extracted to a common library (according to this example https://github.com/VaughnVernon/IDDD_Samples/tree/master/idd... and this one https://github.com/dddshelf/ddd)