领域驱动设计学习(三)

156 阅读2分钟

「这是我参与2022首次更文挑战的第9天,活动详情查看:2022首次更文挑战image.png 前面看到了领域驱动是什么和它的应用场景,接下来要看看DDD里面有那些内容。

DDD中的一些概念

作为一个方法论,DDD引进了一些名称,我们来看下他们是什么,DDD包含的一些技术名词如下:

1、有界上下文
2、事件风暴
3、领域服务
4、贫血模型和充血模型
5、实体和值对象
6、仓储

有界上下文

接上一篇文章,谈到微服务的划分,我们要识别微服务的边界。要识别微服务的边界,首先是要能理解当前需求的背景。思考下如下句子:

冬天:能穿多少穿多少;夏天:能穿多少穿多少。
虽然在冬天和夏天说的话一样,但是它们体现的是不同的意思。在我们的工作中也一样,作为开发和需求人员讨论的时候,如果双方不能明白对方所处的背景,那么沟通起来就有可能是牛头不对马嘴。那么第一件事,就是要统一我们的背景,也就是业务知识。在DDD里,这个需求的背景知识称为有界上下文,换句话说其实就是我们在做软件,谈具体的需求的时候,要把一些概念讲明白,让大家能够在同样的共识下聊天,不能出现一词多义的情况。不能说大家所处的背景不一样,对不同的词语概念有不同的解读,这不利于沟通。所以要求我们要统一我们所处的上下文,即有界上下文。

事件风暴

有界上下文是指我们所处的背景,那么如何统一我们的共识呢?DDD里推荐的一种方式是事件风暴,其实说白了无非就是开会,把具有业务知识的人员集中在一起,相互沟通,通过询问工作中发生的一些事件:如:每天的固定工作是什么?怎么做?涉及到哪一些名词。通过对这些事件和名词进行汇总统一,最终形成大家所能接受的共识,也就是我们的有界上下文,之后,我们所讨论的一切,都应该是在这个有界上下文当中,不应出现有歧义的词语。
今天的DDD就先学习到这,其它一些概念,我们留到后面继续学习。