2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

  • 2019-08-11
  • 本文字数:938 字

    阅读完需:约 3 分钟

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

ArchSummit深圳2019大会上,张晓龙讲师做了《当 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 架构模式

  2. Data,Context,Interaction

  3. 优缺点

  4. DCI 是 DDD 的补充

  5. 类与对象的关系

  6. DCI 与 DDD 的融合

  7. ROLE 的建模

  8. 数据依赖管理

  9. 领域模型各部分的可组合性

  10. 实践案例

  11. 案例介绍

  12. 物理设计

  13. 领域模型设计

  14. 代码实现要点

  15. 小结

  16. DCI 与 DDD 的融合

  17. 审视类与对象的关系

  18. DCI 落地的核心是 ROLE 的建模

  19. 对于开发人员来说 DCI 的收益比 DDD 更大


听众受益点


  1. 理解 DCI 架构模式

  2. 明白 DDD 和 DCI 的关系

  3. 清楚团队基于 DDD 落地 DCI 的方法


讲师介绍


张晓龙


中兴通讯 资深软件架构师


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












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/shenzhen/schedule


2019-08-11 00:006208

评论

发布
暂无评论
发现更多内容

华为云数据库GaussDB (for Cassandra) 数据库治理 -- 大key与热key问题的检测与解决

IT科技苏辞

华为云数据库GaussDB(for Influx)与开源企业版性能对比

清欢科技

华为自研分布式时序数据库集群:初始GaussDB(for Influx)

清欢科技

Flink on Yarn三部曲之一:准备工作

程序员欣宸

大数据 flink hadoop YARN 12月月更

嵌入式系统硬件概述

timerring

嵌入式系统 12月月更

腾讯云升级发布两大区块链产品,助力产业区块链数字化生态建设

科技热闻

国产开源操作系统OpenCloudOS新进展:装机量超1000万节点,合作伙伴超500 家

科技热闻

三江学院计算机科学与工程学院举办“火焰杯”软件测试开发选拔赛颁奖仪式

霍格沃兹测试开发学社

购物季订单多管理难?用WeLink轻松搞定

科技怪授

50亿海量数据如何高效存储和分析? 华为云数据库GaussDB (for Cassandra) 3个秘诀搞定

IT科技苏辞

04 Redis sentinel 模式存储试卷

神奇的叶叔叔

架构实战营 1-3 面向复杂度架构设计随堂测验

西山薄凉

一文读懂|2021年数据库领域精彩回顾

YMatrix 超融合数据库

Zig语言初探

Yuet

架构实战营模块 7 作业

陌生流云

架构实战营

架构实战营 1-2 架构图随堂测验

西山薄凉

「架构实战营」

架构解析:Dubbo3 应用级服务发现如何应对双11百万集群实例

Apache Dubbo

Java 开源 微服务 dubbo

使用 Databend 加速 Hive 查询

Databend

架构实战营 1-1 架构概念随堂测验

西山薄凉

「架构实战营」

三江学院计算机科学与工程学院举办“火焰杯”软件测试开发选拔赛颁奖仪式

测吧(北京)科技有限公司

软件测试 测试

源码级解决方案一键部署,华为云Solution as Code正式上线

科技怪授

常用的十大Python开发工具

千锋IT教育

WeLink互动直播:维护网课秩序,杜绝外人乱入

与时俱进的时代

极客时间运维进阶训练营第四周作业

LiaoWD

pipeline SonarQube jenkins高级用法

深入浅出Seata的AT模式

Java 架构

腾讯产业生态规模大、增速快、质量高,2023年将加大生态开放力度

科技热闻

测试如何发展副业,提升斜杠收入

老张

码农副业 斜杠

一文了解 Go 方法

陈明勇

Go golang 方法

架构实战营 1-4 架构设计三原则随堂测验

西山薄凉

腾讯云曹磊:双碳、双循环政策驱动下,消费电子行业的新机遇

科技热闻

BSN开放联盟链“中移链”浏览器2.0正式发布!

BSN研习社

BSN 中移链

当 DDD 遇上 DCI(Data, Context, Interactive)架构模式_ArchSummit_张晓龙_InfoQ精选文章