DDD实践思考

本文介绍了领域驱动设计(DDD)的核心概念,包括如何通过统一语言建模领域、业务建模的步骤(如梳理需求、识别领域对象和微服务划分)、以及技术建模的具体实践(如实体识别、服务职责分配和数据库设计)。着重强调了DDD在适当场景下的应用及其落地过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

DDD(domain driven design)

领域驱动设计强调技术专家和业务专家,通过统一的语言来完成领域的建模,帮助技术侧和业务侧形 成一套统一的语言.
DDD就是以领域为入口,来解决产品设计,研发的思想。

什么场景适合使用DDD

并不是所有场景都适合使用DDD,DDD纵然有千般好,复杂业务建模以及业务场景不确定的任务.

DDD落地的步骤实践

业务建模

通过需求梳理,形成用户故事地图 .

1、梳理需求

  • 梳理用户角色/用户群体
  • 梳理任务(任务是用户操作的最小粒度)
    举个例子: 经常在用户故事地图中看到角色Who需要做What,我们可以将任务类比为一个API或者多个API.
  • 活动
  • 命令

他们之间的关系是:
角色:活动 = 1:n。活动:任务= 1:n,任务:命令=1:n

  • 识别领域对象
  • 将业务建模的命令移动到新建的领域,把命令移出领域对象,命令在领域对象间转移.

2、形成用户地图

做完上面的步骤之后,就形成用户故事地图, 用户故事地图自由好不好用,没有正确的用户故事地图

3、识别领域对象

我们以用户故事地图为基础,识别或抽象与任务、命令最相关隐含的业务概念, 一般来说是命令、角色、任务、规则中的名词,领域对象,并围绕领域对象相关的命令,划分职责边界

4、划分模块和微服务

将所有的领域对象提取出来,画出领域对象之间的依赖关系,领域对象之间的一对一、一对多、多对多的关系.

5、将领域对象归类的模块(活动)

将领域对象归类到模块、活动

技术建模

  • 识别实体
  • 划分为服务
  • 分配职责
  • 设计数据库

识别实体

识别核心的业务逻辑技术载体,领域对象映射

划分微服务

发挥云弹性,敏捷的优势, “高频-重要”四象限等

分配职责

内聚业务逻辑
贫血模型逐渐充血

设计数据库

资源集约地实现可用性等非功能需求
涉及ORM表、数据库拆分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿阿三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值