What is DDD?
一种软件设计的方式
what is the difference?
从代码来看:拒绝贫血Entity类(即只有Setter/Getter的类),将行为内化到对象上。符合面向对象思想。
从系统设计来看,DDD的核心诉求就是将业务架构映射到系统架构上,在响应业务变化调整业务架构时,也随之变化系统架构。而微服务追求业务层面的复用,设计出来的系统架构和业务一致;在技术架构上则系统模块之间充分解耦,可以自由地选择合适的技术架构,去中心化地治理技术和数据。
设计领域模型的一般步骤如下:
- 根据需求划分出初步的领域和限界上下文,以及上下文之间的关系;
- 进一步分析每个上下文内部,识别出哪些是实体,哪些是值对象;
- 对实体、值对象进行关联和聚合,划分出聚合的范畴和聚合根;
- 为聚合根设计仓储,并思考实体或值对象的创建方式;
- 在工程中实践领域模型,并在实践中检验模型的合理性,倒推模型中不足的地方并重构。
https://kb.cnblogs.com/page/112298/
https://kb.cnblogs.com/page/540632/
https://kb.cnblogs.com/page/522125/
https://kb.cnblogs.com/list/1008/
http://mp.weixin.qq.com/s?src=11×tamp=1518761559&ver=701&signature=NQK7FstkpS5reDUiQxTXjJooxxMcwLMt7YlUt8EmRLRUXJ0h*Jwd7Uv*YNr9xGBRFY-Ufq4ATGQxIWvhgxq07I7JX7WItovGXsxMhLCDzLcHNLCHxllvHFboQbsIrLRG&new=1