在我们日常使用,原初始架构,如下是再熟悉不过的了。类似于链路调用方式。
controller->service->dao 一层一层走。如果该类型放在单体应用上是没什么大问题的,能够很好的进行层次的划分和分类。
这就会带来:
- 服务层过重,数据模型失血,没东西;
- 面条式编程或者面向数据库编程,服务层围绕数据库作业完成业务逻辑,经常一条线撸到底;
- 代码一整块一整块的过重,很难扩展复用;
- 数据库模型只是数据库映射,没有相关的行为支撑,行为都被上一层Service给完成等了,因此是失血 的领域模型;
我们知道,这些年来随着设备和新技术的发展,软件的架构模式发生了很大的变化。软件架构模式大体来说经历了从单机、集中式到分布式微服务架构三个阶段的演进 。随着分布式技术的快速兴起,我们已经进入到了微服务架构时代。
DDD 是一种处理高度复杂领域的设计思想 ,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。DDD 不是架构,而是一种架构设计方法论 ,它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可以很容易地实现架构演进。
草稿。。待补充