可能有助于编写更容易维护的Java代码DDD最佳实践 - Maciej Walkowiak


1.通过垂直切片而不是层来命名和组织包结构 
2.仅通过ID而不是类型来引用其他聚合
3.从聚合中发出事件并使用它们与其他切片通信,而不是从其他切片来直接调用这个聚合中的类
4.降低类可见性以尽可能保护包,而不是默认将所有内容公开
5.要考虑“服务”类 : 明确哪些服务代表用例,哪些是基础设施或领域服务 - 而不是将服务仅仅作为一堆程序
6.始终确保对象处于正确状态 - 创建特定的构造函数或静态工厂方法,而不是使用默认构造函数并设置所有属性! 
7.当构造函数有很长的参数列表,且具有相同类型,考虑使用Builder模式来创建
8.使用依赖性反转将域逻辑与实现细节分开
9.不仅仅返回null - 使用Optional或mark方法使用Nullable注释
10.使所有DTO都不可变 - 每个字段都是final而不是setter
11.在实体中考虑使用流畅的setter和方法来
12. 避免使用VisibleForTesting 实体 - 你的类很可能做太多事情
13. 把javadocs放在公共类上 - 今天显而易见的事情往往会被遗忘一周后