当 DDD 遇上 DCI(Data, Context, Interactive)架构模式

所属专题:DDD(领域驱动设计)落地探索

所属领域:

嘉宾 : 张晓龙 | 中兴通讯资深软件架构师

会议室 : 周

讲师介绍

专题演讲嘉宾:张晓龙

中兴通讯 资深软件架构师

Gomonkey 和 Go 语言 trans-dsl 作者,具有十多年软件架构和开发经验,近年专注 PaaS 和 5G 等大型项目的设计和开发,精通微服务契约测试。爱读书,爱运动,爱编程,爱分享,对于大型软件的重构具有丰富的实战经验。曾指导多个团队积极实践 DDD,包括开发领域和测试领域,取得了比较好的效果。

议题介绍

演讲:当 DDD 遇上 DCI(Data, Context, Interactive)架构模式

DCI是数据、场景、交互(Data、Context、Interactions)简称,重点是关注数据的不同场景的交互行为,是面向对象系统状态和行为的一种范式设计;DCI在许多方面是许多过去范式的统一,多年来这些模式已经成为面向对象编程的辅助工具。

问题背景:电信软件的功能复杂特性交叉,对实时性和数据一致性的要求比较高,代码规模比较大,同时处理大量并发活动。

解决方案选型:1.领域建模+贫血模型;2.领域建模+充血模型;3.领域建模+DCI。

方案介绍:选择“领域建模+DCI”,将类和对象看成不同的事物。类作为一种模块化手段,遵循高内聚,低耦合,让软件易于应对变化;将类看做是领域对象拥有的职责或扮演的角色,对象作为一种领域对象的的直接映射,解决了过多的类带来的可理解性问题,让领域可以指导设计,设计真正反映领域。如果使用 C++ 语言来实现的话,可以通过多重继承的方式来完成职责 ROLE 的组合 ;如果使用Go语言来实现的话,可以通过依赖注入的方式完成职责 ROLE 的组合。

实施后效果说明:DCI 可以和 DDD 融合在一起,基于职责的组合式设计提高了代码的可理解性和应对变化的能力,而且对于开发人员来说 DCI 带来的收益比 DDD 更大。

演讲提纲:

  1. DCI 架构模式
    • Data,Context,Interaction
    • 优缺点
  2. DCI 是 DDD 的补充
    • 类与对象的关系
    • DCI 与 DDD 的融合
    • ROLE 的建模
    • 数据依赖管理
    • 领域模型各部分的可组合性
  3. 实践案例
    • 案例介绍
    • 物理设计
    • 领域模型设计
    • 代码实现要点
  4. 小结
    • DCI 与 DDD 的融合
    • 审视类与对象的关系
    • DCI 落地的核心是 ROLE 的建模
    • 对于开发人员来说 DCI 的收益比 DDD 更大

听众受益点:

  1. 理解 DCI 架构模式
  2. 明白 DDD 和 DCI 的关系
  3. 清楚团队基于 DDD 落地 DCI 的方法

交通指南

© 2020 Baidu - GS(2019)5218号 - 甲测资字1100930 - 京ICP证030173号 - Data © 长地万方
想要批量报名或更多优惠?
立即联系票务报名小助手豆包
或致电:010-84780850