写点什么

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

评论

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

最新资讯 | 矩阵起源产品VP邓楠亮相中国行业互联网大会 揭秘AI原生数据工程新范式

MatrixOrigin

懒懒笔记 | 课代表带你梳理【RAG课程 15&16:从多文档总结到图表生成的论文问答系统打造】

商汤万象开发者

YashanDB数据库的多版本控制系统详解

数据库砖家

YashanDB数据库的技术路线图及未来规划

数据库砖家

YashanDB数据库的扩展性如何满足企业需求

数据库砖家

YashanDB数据库的容灾切换方案及实施步骤

数据库砖家

活动管理解决方案

微擎应用市场

YashanDB数据库的常见问题与解决办法

数据库砖家

YashanDB数据库的多语言支持与开发环境选择

数据库砖家

基于华为开发者空间AI Agent开发平台构建We码会议助手

华为云开发者联盟

AI hdc 华为开发者空间 MCP

YashanDB数据库的架构特点及应用场景详解

数据库砖家

浅谈Java内省

京东科技开发者

HarmonyOS Next Tabs组件使用

auhgnixgnahz

鸿蒙Next

YashanDB数据库的技术架构与应用场景

数据库砖家

YashanDB数据库的多语言支持能力探讨

数据库砖家

YashanDB数据库的多租户支持能力

数据库砖家

YashanDB数据库的合规性审计与报告机制

数据库砖家

YashanDB数据库的前沿技术与行业趋势

数据库砖家

由 Mybatis 源码畅谈软件设计(八):从根上理解 Mybatis 二级缓存

京东科技开发者

一分钟入门mcp开发

京东科技开发者

YashanDB数据库的常见问题及解决办法

数据库砖家

YashanDB数据库的技术架构适合企业数字化转型吗?

数据库砖家

YashanDB数据库的内存管理技巧及方案总结

数据库砖家

YashanDB数据库的启示:如何实现智能数据存储

数据库砖家

区块链数字 ID 系统的开发

北京木奇移动技术有限公司

区块链技术 软件外包公司 数字ID

YashanDB数据库的多模态功能与应用前景

数据库砖家

YashanDB数据库的多语言支持与国际化探索

数据库砖家

多场景展示平台

微擎应用市场

用户活跃管理工具

微擎应用市场

如何有效实施MyEMS开源能源管理系统?ISO 50004为你提供全面指南

开源能源管理系统

开源 能源管理 开源能源管理系统 ISO 50004

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