QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

使用领域叙事确定界限上下文

  • 2018-02-23
  • 本文字数:1183 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

界限上下文(Bounded Context)是采用领域驱动设计(DDD)工作方式中的一个核心理念。领域叙事(Domain storytelling)是一种发现领域中人与系统如何共事的方式,可用于识别各个界限上下文,以及它们之间是如何互联的。近期在阿姆斯特丹召开的DDD 2018 欧洲大会上,来自于 Workplace Solutions 的演讲者 Stefan Hofer Henning Schwentner 做了演讲。两位演讲者在使用领域叙事方式与领域专家开展对话上具有多年的经验。在他们看来,领域叙事是建模工具箱中额外添加的一种有用工具。

使用领域叙事,可让领域专家讲述自己的工作方式。他们讲述的故事使用了下面的象形语言、一组有差异的符号和文本注释做可视化展示:

  • 演员。例如一个人、一位客户,或者是汽车、船舶这样更技术化的事物。
  • 工作对象。例如文档或消息,也可以是更抽象的事物,例如运输路线。
  • 用箭头表示活动。

在通常情况下,符号是为适应领域而定制的。符号为人们提供了一种不同于交付情况的象形图。如有需要,可在图中添加文字,描述符号所代表的意义。使用符号和文字,最终构成了一些尽可能接近于自然语言的语句。然后将这些语句加入到图中,并使用数字标识顺序。一般情况下,如果能避开决策门户,那么故事总是仅涵盖某一个具体的例子。可视化绘图使领域专家能尽快看到一个故事中是否存在误解,并纠正其中的错误。

为了找出候选的界限上下文,Hofer 和 Schwentner 在故事中使用了指示符。具体的指示符例子包括:

  • 一个单向信息流。
  • 语言中的差异。例如,使用同一名称描述了不同的事物。
  • 对不同的部分使用不同的触发器。例如,部分工作需每日完成,而部分工作是按需完成的。

Hofer 认定,一旦发现了三种指示符,就找到了在两个不同上下文间的一个有效界限。但 Hofer 强调指出,这种方法只表明了存在界限的迹象,而非确证。虽然在故事中,单向信息流是界限的一种指示符。但如果我们对领域做深入了解,就可能会发现该信息流在其它故事中表现出更复杂的特性。因此,这样的信息流不能构成一种界限。

在 Hofer 和 Schwentner 看来,仅仅找出上下文间的界限是不够的,因为业务流程通常是一种跨界限的合作性工作。两位演讲者强调指出,找出界限的目标并非是要树立起一道墙壁,而是构建一种能分离上下文的模型,支持人们一起共事。他们需要分离模型,让所构建的软件易于理解且不易出错,所构建的系统可供不同的人使用。

Hofer 和 Schwentner 最后对演讲做了总结。他们指出领域叙事是一种有实用价值的工具,鼓励听众做尝试,并欢迎向他们反馈结果。

在大会中一个为期两日的研讨会上, Alberto Brandolini 介绍了由他创立的另一种称为“事件风暴”的建模工具。

大会的所有演讲录像将在下月发布。 DDD 2019 欧洲大会已经开始规划,准确日程尚未发布。

查看英文原文: Finding Bounded Contexts Using Domain Storytelling

2018-02-23 18:003392
用户头像

发布了 391 篇内容, 共 142.2 次阅读, 收获喜欢 257 次。

关注

评论

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

干货|PCBA丝印位号与极性符号的组装性设计

华秋电子

PCB dfm

十分钟用vitepress搭建项目文档

虎妞先生

前端 vite Vue 3

大型集团企业数据治理实践,推进全域数据资产体系建设 | 数字化标杆

袋鼠云数栈

前端包管理工具 npm yarn cnpm npx

虎妞先生

前端 包管理工具 #面试

Hi3861编译烧录更快捷

HarmonyOS开发者

HarmonyOS

如何用Apipost预执行脚本动态修改Query、Body、Header参数

不想敲代码

Postman 接口调试 API apipost

Vue3项目框架搭建封装,一次学习,终身受益【万字长文,满满干货】

虎妞先生

前端 前端架构 Vue 3 vue cli

畅销10年的数据库技术图书,当之无愧的霸主!还有谁?

博文视点Broadview

C++到Python全搞定,教你如何为FastDeploy贡献代码

飞桨PaddlePaddle

c++ paddle 飞桨

银行零售如何更贴近客户?是时候升级你的客户旅程平台了

Kyligence

数据分析 客户旅程

探讨MySQL事务特性和实现原理

小小怪下士

Java MySQL 程序员 事务

我的2022,从紫竹院到通惠河畔

虎妞先生

学习 前端 成长 年终总结

应用部署初探:微服务的3大部署模式

SEAL安全

微服务 企业号 2 月 PK 榜

2023年低代码发展新趋势

力软低代码开发平台

给webpack提了一个pr之后......

虎妞先生

前端 webpack #开源

从零开始学习BOM&DOM

虎妞先生

前端 DOM

微信小程序底层框架实现原理|万字长文

虎妞先生

微信小程序 前端 原理 架构、

云安全之浅谈密钥泄露

HummerCloud

云安全 密钥

Flink CEP 在抖音电商的业务实践

Apache Flink

大数据 flink 实时计算

非代码的贡献也能成为Committer,我与DolphinScheduler社区的故事

白鲸开源

开源 开源社区 开源文化 开源软件 大数据 开源

对话 ChatGPT:现象级 AI 应用,将如何阐释「研发效能管理」?

LigaAI

人工智能 研发效能 openai ChatGPT 企业号 2 月 PK 榜

图片竟能直接生成逼真音效?这AI模型也太神奇了吧!

人称T客

不常用但却常问的迭代器

虎妞先生

前端 ES6

git中patch的用法

ModStart

谈谈干前端三年的几点感受

虎妞先生

前端 成长 代码人生

众生皆苦,我选pnpm

虎妞先生

npm 原理 前端工程化 pnpm

看海泰方圆类ChatGPT技术模型!

电子信息发烧客

JVM性能调优,分享些好用的内存分析神器

Steven

Python从0到1丨图像增强及运算:形态学开运算、闭运算和梯度运算

华为云开发者联盟

Python 人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

BSN-DDC基础网络详解(二):快速接入指南

BSN研习社

BSN-DDC

前端如何实现将多页数据合并导出到Excel单Sheet页解决方案|内附代码

葡萄城技术团队

数据库 前端 架构分布式

使用领域叙事确定界限上下文_语言 & 开发_Jan Stenberg_InfoQ精选文章