大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

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

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

关注

评论

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

这一秒,困扰了程序员 50 年!

Java你猿哥

Java 程序员 ssm 计算机

基于公共信箱的全量消息实现

百度Geek说

大数据 即时通讯 企业号 4 月 PK 榜 公共信箱

度量分析开源社区健康度,助力企业开源生态健康发展——华为开源管理中心王晔晖

开源雨林

开源治理 OSPO OSS Compass CHAOSS

神了!阿里P8级数据库专家手写出了这份438页数据库高效优化手册

Java 数据库 sql 性能优化

分布式计算技术(下):Impala、Apache Flink、星环Slipstream

星环科技

分布式计算 Slipstream

AppleParty(苹果派)v3 支持 App Store 新定价机制 - 批量配置自定价格和销售范围

37手游iOS技术运营团队

In App Purchase AppleParty App Store Connect API 批量创建内购IAP app store

python游戏开发-pgzero

AIWeker

Python python小知识 三周年连更

SysCare:为您的操作系统保驾护航

openEuler

Linux 操作系统 openEuler 内核 热补丁

数栈V6.0全新产品矩阵发布,数据底座 EasyMR 焕新升级

袋鼠云数栈

大数据 基础软件 数字化转型

权威学者、企业CFO荟聚上海国家会计学院,共探「智能会计 价值财务」

用友BIP

智能会计 价值财务 用友智能财务 业财融合

宝塔人机识别验证:如何确保人脸识别的安全性?

百度开发者中心

人脸识别 人工智能’

iOS MachineLearning 系列(6)—— 视频中的物体轨迹分析

珲少

面试官:HashMap线程不安全体现在哪里?

在高校内投放共享电单车有什么优势

共享电单车厂家

共享电动车厂家 景区共享电单车 共享电单车投放 校内共享电单车 共享电单车优势

Wallys/DR7915/MT7915/MT7975/industrial mini pcie card /support openwrt

Cindy-wallys

MT7975 MT7915

Github星标120k!这份阿里独有的高并发实战笔记太强了!

Java redis zookeeper Netty 高并发

分布式计算技术(上):经典计算框架MapReduce、Spark 解析

星环科技

分布式计算

分析型数据库:MPP 数据库的概念、技术架构与未来发展方向

星环科技

MPP数据库

从入门到精通,超详细的程序员Java学习路线指南

Java你猿哥

Java 数据库 Web ssm 死磕 Java 基础

自动化回归测试平台 AREX 0.2.8 版本正式发布!

AREX 中文社区

自动化测试 接口测试 回归测试

ShareSDK Google平台注册指南

MobTech袤博科技

星环科技自研技术,加速大数据从持久化、统一化、资产化、业务化到生态化

星环科技

大数据

竞争焦点转向数智底座 用友能否再引领

用友BIP

用友iuap 用友技术大会 升级企业数智化底座

阿里十年资深码农共享SpringCloud微服务架构实战文档

Java你猿哥

微服务架构 Spring Cloud ssm 架构设计 架构师

iSulad+Kuasar:管理面资源消耗锐减 99%的新一代统一容器运行时解决方案

openEuler

Linux 容器 云原生 操作系统 Kubernetes Serverless

Rust-Shyper:基于 Rust 语言的高可靠、开源嵌入式 Hypervisor

openEuler

Linux rust 操作系统 虚拟机 嵌入式

分布式场景下,Apache YARN、Google Kubernetes 如何解决资源管理问题?

星环科技

资源管理 Apache YARN

阿里RocketMQ创始人首次分享出这份RocketMQ技术内幕神级架构手册

Java RocketMQ 消息队列 消息中间件

代码重构:面向单元测试

阿里技术

anyRTC快对讲融合通信指挥调度平台

anyRTC开发者

音视频 融合通信 快对讲 视频监控 综合调度

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