「这是我参与2022首次更文挑战的第8天,活动详情查看:2022首次更文挑战」
上一篇文章谈了DDD是什么?并且简要的讲了一下DDD的一些作用,这次我们继续来谈谈DDD的一些使用场景。
DDD的应用场景
众所周知,任何技术都有其应用的场景,DDD当然也不例外。如果有框架能在任何场合都通吃的话,就不会有那么多的轮子了:)。DDD作为软件开发的方法论,它的出生是为了解决软件开发的复杂性,防止软件膨胀过快。当然,只能是防止膨胀过快,如果无限制的加需求的话,到最后都会成为屎山一样的存在,只不过是时间长短的问题罢了。如果你的系统本身并不复杂,并且是一次性的项目的话,上DDD可能就不是一种明智的选择,一次性的项目意味着以后都不可能会有新的需求了,上就完事了。
DDD在微服务中的应用
我刚开始接触微服务的时候,经常听说要拆份微服务,然而,怎么拆份微服务,却很少有能够说出一二的。确实,拆份服务,不是一件简单的活,拆得太细,维护的项目就多,并且跨服务调用的情况也可能会增加。拆分得不好,会导致多个服务间的相互调用需要用分布式事务去保证一致性。这反而徒增系统的复杂性,微服务的好处也没能体现出来。
那么,DDD作为一种方法论,可以用来指导我们拆分微服务,识别服务的边界。就如我上一篇文章所说,DDD无非就是把面向对象的思想扩展了一下,并加入了一些新的概念。在微服务中,我们要识别出对象的职责边界,即DDD里的领域,领域又分为核心域、支撑域、通用域等。这些概念我们留到后面继续讲。