NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

用户故事图谱与领域驱动设计的结合应用

  • 2015-12-28
  • 本文字数:976 字

    阅读完需:约 3 分钟

Eriksen Costa 在一篇博客文章中讨论了在项目设计中结合使用用户故事图谱(User Story Mapping)与领域驱动设计(DDD)所带来的优势。在他看来,开发者们往往会由于某个需求特性开发的压力而忽略一些必要的对话,而这种对话能够帮助参与者建立起对业务的共识。这些开发者们更愿意参与技术性的讨论,并直接进入特性的实现阶段。这样一来,他们就丧失了深入学习相关领域,并通过领域的概念对软件进行建模的机会。

Costa 是 Wikidu 公司的 CTO,他表示:虽然我们会通过各种不同的实践保证软件系统的质量,例如测试驱动开发(TDD)和持续集成,但并不意味着这样设计出的系统能够自然地反映出对应的领域概念。为此,他引用了 Eric Evans 所编写的 DDD 著作中的内容:

如果程序员对于领域本身不感兴趣,那么他们所了解的仅限于应用程序所应有的行为,却丢失了这些行为背后的原则。虽说通过这种方式也能够创建出实用的软件,但这样的项目永远无法达到一种理想的状态:即强大的新特性将随着旧特性的演变而自然地浮现出来。

Costa 特别强调,DDD 方法为软件的开发提出了一种新的途径,它不再关注于技术本身,而是专注于通过开发者与领域专家的交流达成一种共识,在此基础上打造出一个模型以及通用的语言(即通用语言 Ubiquitous Language)以描述这一领域。

Costa 相信,创建用户故事图谱是实现共识的第一步,它有助于促使开发者们采用 DDD 方法。用户故事图谱能够更清晰地以可视化的方式显示整个项目的全局信息,帮助开发者确定用户故事开发的优先级。通过一种协作式的方式进行用户故事图谱的创建,能够模拟出相关的全部信息,并通过这些结果展开有效的对话。而开发者们也能够通过这一过程更好地理解他们的工作在全局中所扮演的角色。他同时相信,通过采取这种方式,能够在团队成员之间建立起更密切的联系,让他们更好地理解业务的目标。

Costa 在文中通过一个简短的速成教程解释了用户故事图谱的基本概念。除此之外, Jeff Patton Gojko Adzic 也撰写了大量有关用户故事和影响地图(Impact Mapping)的内容,其中一个示例叫做“通过汉堡方法切分用户故事”。

Costa 最后的结论是:在处理复杂领域的项目采用 DDD 方法时,使用用户故事图谱是一种简单而有价值的模式。它将帮助开发者与领域专家创建共享的领域知识,以及项目起始的通用语言词汇表。

查看英文原文: Combining User Story Mapping with Domain-Driven Design

2015-12-28 18:003377
用户头像

发布了 428 篇内容, 共 172.1 次阅读, 收获喜欢 38 次。

关注

评论

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

docker和docker compose安装使用、入门进阶案例

偶尔善良

Docker docker-co

手把手教学直播:如何提交 PR 成为龙蜥社区贡献者? | 第 23 期

OpenAnolis小助手

开源 PR 龙蜥社区 龙蜥大讲堂 社区贡献

Vue-11-条件渲染

Python研究所

6月月更

安全服务厂商安全狗加入龙蜥社区

OpenAnolis小助手

开源 网络安全 龙蜥社区 龙腾计划 安全狗

InfoQ 极客传媒 15 周年庆征文 | 跨系统数据一致性问题

架构精进之路

数据一致性 构架 InfoQ极客传媒15周年庆

InfoQ 极客传媒 15 周年庆征文|【Docker最佳实践】Windows上安装Docker及常见问题解决

迷彩

Docker 架构 运维 6月月更 InfoQ极客传媒15周年庆

助力直播平台源码脱颖而出,要完成哪些关键功能?

开源直播系统源码

软件开发 直播源码

Django 中的视图 | Python

海拥(haiyong.site)

Python django 6月月更

一个 Angular 程序员两年多的远程办公经验分享 | 社区征文

Jerry Wang

程序员 远程办公 Slack 6月月更 初夏征文

测试开发【Mock平台】05开发:项目管理(一)后端接口

MegaQi

测试平台开发教程 6月月更 测试技术干货

云原生技术 - 如何从代码到制作并发布一个 Helm 包?

孙健波

云原生 Helm

NFT链游系统开发|NFT卡牌盲盒游戏

薇電13242772558

NFT 链游

四次蝉联中国容器云市场TOP5!为应用赋能

BoCloud博云

云原生 容器技术 容器云 博云

Vone观点说|用DAO打造人类协作新形态

旺链科技

区块链 产业区块链 自组织协作

【直播回顾】Hello HarmonyOS系列应用篇完美收官!

HarmonyOS开发者

HarmonyOS

摆脱五彩斑斓的黑,成为七彩程序员!

禅道项目管理

C#入门系列(十六) -- 类及其成员介绍

陈言必行

C# 6月月更

Linux开发_Makefile规则与Shell脚本语言

DS小龙哥

6月月更

InfoQ 极客传媒 15 周年庆征文|uni-app 路由传参参数丢失问题解决方案探究

No Silver Bullet

前端 6月月更 InfoQ极客传媒15周年庆 路由传参

JavaScript异步函数async/await

大熊G

JavaScript 前端 6月月更

现场办公VS居家办公——我的2022居家办公经验分享| 社区征文

No Silver Bullet

经验分享 居家办公 6月月更 初夏征文

详解Cache缓存与DB数据库一致性

分治实践

数据一致性 缓存Redis

纯CSS 毛玻璃效果 💎

德育处主任

CSS 纯CSS 6月月更

6大优势、2种类型,一文吃透动态应用安全测试(DAST)

SEAL安全

DevOps 网络安全 DevSecOps 软件安全

大数据培训Flink 简介与认知

@零度

flink 大数据开发

用 Golang 重写 rsync(3):C里面的谜之指针

百家饭隐私计算平台创业者

c

【Python技能树共建】pyspider框架的使用

梦想橡皮擦

Python 6月月更

企业知识管理就是信息化建设吗?

小炮

使用 Prometheus 监控 SAP ABAP 应用程序

Jerry Wang

云计算 Kubernetes 云原生 abap 6月月更

MySQL索引

龙空白白

索引 MySQL InnoDB

大数据培训Flink 运行架构

@零度

flink 大数据开发

用户故事图谱与领域驱动设计的结合应用_语言 & 开发_Jan Stenberg_InfoQ精选文章