写点什么

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

  • 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:003344
用户头像

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

关注

评论

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

HMS Core上新啦!

HarmonyOS SDK

HMS Core

测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)

霍格沃兹测试开发学社

阿里大哥手把手教你从零到一搭建Spring Cloud Alibaba!太强了

Geek_0c76c3

Java 数据库 开源 架构 面经

面试 | 互联网大厂测试开发岗位会问哪些问题?

霍格沃兹测试开发学社

技术分享 | web 控件的交互进阶

霍格沃兹测试开发学社

web前端培训机构怎么选择比较好呢

小谷哥

阿里顶配版 Spring 全家桶高级笔记+学习路线图+硬核资料库,跪着啃完了。。。

Geek_0c76c3

Java 数据库 开源 程序员 架构

技术分享 | 网页 frame 与多窗口处理

霍格沃兹测试开发学社

HUE部署

峥岳

hue 安装部署 9月月更

LP单双币双池挖矿dapp系统开发技术详情

开发微hkkf5566

测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~

霍格沃兹测试开发学社

ESP32-C3入门教程 网络 篇(三、 MQTT 协议基础介绍及测试)

矜辰所致

mqtt ESP32-C3 9月月更

测试人生 | 疫情之下,1个月内涨薪50%拿下亿级流量金融上市公司新 offer,我柠檬了~

霍格沃兹测试开发学社

阿里云EMAS|App隐私合规“免费”自动化检测

移动研发平台EMAS

阿里云 移动测试 隐私合规 移动研发 App检测

Android动态权限详解

霍格沃兹测试开发学社

交付有价值的产品,先澄清用户故事吧!

敏捷开发

产品 项目管理 敏捷开发 软件开发 用户故事

美团 3 面 (Java 后台):NIO+BIO+Zookeeper+ 线程池 +Redis+kafka

钟奕礼

Java 面试 java;

技术分享 | Web 控件定位与常见操作

霍格沃兹测试开发学社

大数据开发培训周期和方法

小谷哥

技术分享 | Web自动化之显式等待与隐式等待

霍格沃兹测试开发学社

100 行代码在微信公众号里集成地图搜索功能

汪子熙

html 微信 web开发 微信开发 9月月更

技术分享 | web自动化测试-执行 JavaScript 脚本

霍格沃兹测试开发学社

IDC:云效产品能力No.1,领跑中国DevOps市场

阿里云云效

DevOps 数字化 产品研发 DevOps工具链

对于火热的MLOps的一些冷静观察

Baihai IDP

人工智能 机器学习 AI MLOps

Windows-Python 应用:使用消息操作窗口

霍格沃兹测试开发学社

如何通过C#/VB.NET代码将Excel工作表拆分为单独的文件

在下毛毛雨

C# .net Excel 拆分

轻量级工作流引擎的设计与实现

京东科技开发者

工作流 流程 工作流引擎 迭代 轻量级工作流引擎

Demo Day直播 | 成长计划解决方案学生挑战赛一等奖即将揭晓!

OpenHarmony开发者

Open Harmony

APK 逆向工程 - 解析 apk 基本信息和方法调用图

霍格沃兹测试开发学社

一台“厉害”的打印机

华为云开发者联盟

云计算 后端 物联网 企业号九月金秋榜

幂等设计详解

京东科技开发者

数据库 系统架构 幂等 研发 幂等设计

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