写点什么

当 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:006382

评论

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

时序数据库 TDengine SQL 查询语法规则汇总,官方教程奉上!

爱倒腾的程序员

数据库

简明易懂的介绍:Selenium是什么?

Liam

编程 测试 自动化测试 web开发 测试工具

腾讯云ES:一站式配置,TKE容器日志采集与分析就是这么简单

腾讯云大数据

ES

镭速-解析极速文件传输软件

镭速

文件传输软件 传输文件

文件传输软件常见问题解决办法大全

镭速

文件传输软件

文心一言 VS 讯飞星火 VS chatgpt (73)-- 算法导论7.1 4题

福大大架构师每日一题

福大大架构师每日一题

软件测试/测试开发丨Python 内置库 多线程threading

测试人

Python 程序员 软件测试 自动化测试 测试开发

2023年-广州国际睡眠家居产品及睡眠展会

秋硕展览

预设成功

FunTester

推动多云管理平台发展的因素简单分析

行云管家

云计算 云管平台 上云

浪潮海岳云原生平台技术分享丨轻松解决数据库备份痛点

inBuilder低代码平台

云原生 低代码平台

基于昇腾,安擎又双叒叕推新品!

科技热闻

企业如何挑选适合自己需求的文件传输软件

镭速

文件传输软件

2023年广州国际智能窗帘及智能门窗遮阳展会

秋硕展览

面部表情识别在社交媒体中的应用

数据堂

瓴羊Quick BI跻身Gartner魔力象限挑战者行列

夜雨微澜

关于低代码解放程序员这件事儿

互联网工科生

低代码 可视化开发 企业级应用程序开发 JNPF

HA3 SQL样本实验:一种混合计算查询的全新样本解决方案

阿里技术

软件测试/测试开发丨Python 内置库 正则表达式re

测试人

Python 正则表达式 程序员 软件测试 测试开发

HarmonyOS系统级推送服务,打造消息通知新体验

HarmonyOS SDK

面部表情识别的未来发展趋势

数据堂

袋鼠云数栈 DataOps 数据生产力实践,实现数据流程的自动化和规范化

袋鼠云数栈

DataOps

TooKit助力开发者上云

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

龙蜥社区系统运维 MeetUp

乘云数字DataBuff

超好用的数据可视化工具——Grafana

云原生应用市场

监控 数据 Grafana 告警

告别传统人肉运维,实现360°可观测!奇点云数据存算引擎DataKun R2.0发布

奇点云

产品发布 奇点云 数据安全引擎 数据存算引擎

智慧生活的下半场,从全屋智能4.0接入未来

这不科技

华为 鸿蒙系统

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