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

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

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

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

关注

评论

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

在人均配备升降桌的公司工作,是一种怎样的体验?

LigaAI

开发者 LigaAI

读《思辨与立场》-03公允无偏

wood

28天写作 批判性思维 思辨与立场

CODING x 百果园,水果零售龙头迈出 DevOps 体系建设第一步

CODING DevOps

DevOps CODING 百果园 合作

大势已来,区块链的真正价值是什么?

CECBC

盘点前端进阶之路的零到一

速冻鱼

前端 内容合集 签约计划第二季 12月日更

面向 WEB 开发的 Docker(一)

devpoint

Docker 12月日更

阿里云手机正式公测,定义手机全新接入方式

阿里云弹性计算

阿里云 弹性云手机

谁在驱动、谁在引领?(14/28)

赵新龙

28天写作

贝壳Flutter体系化建设实践

贝壳大前端技术团队

技术专题合集

读《刷新》有感

将军-技术演讲力教练

飞桨企业版重磅发布智能边缘控制台,5分钟零代码自动化模型部署

百度大脑

人工智能 百度

不可错过的年度AI盛会 | 2021 新一代人工智能院士高峰论坛议程重磅发布

OpenI启智社区

人工智能 开源社区 院士峰会 启智开发者大会

Volatile 原理六:图解指令重排

悟空聊架构

volatile 28天写作 悟空聊架构 12月日更 指令重排

音视频学习--视频特性测试

Fenngton

音视频 测试环境 签约计划第二季

Go+ JSON 编码和解码处理教程(5.4)

liuzhen007

28天写作 12月日更

数据产品经理实战合集

第519区

内容合集 签约计划第二季 技术专题合集

团队实行996,就有人离职,怎么办?

石云升

996 28天写作 加班文化 职场经验 12月日更

面向视频原生,火山引擎视频云与边缘云软硬一体的新云解决方案

火山引擎边缘云

基础设施 边缘计算 云服务 视频 云计算,

TCP 拥塞控制算法

程序员历小冰

TCP 网络 28天写作 12月日更

面向WEB开发的Docker(二):什么是Docker、镜像、编排?

devpoint

Docker Dockerfile 12月日更

44 K8S之污点与容忍度

穿过生命散发芬芳

k8s 28天写作 12月日更

区块链引发了一场独特的社会运动

CECBC

Spring Cloud Config

李子捌

微服务 28天写作 12月日更

一款好用的Java插件 - Lombok

恒生LIGHT云社区

Java lombok

Redis(三):持久化

IT巅峰技术

Java redis 架构师 分布式缓存 redis分布式

【AI最前线】精准优质-资讯|分享|热议第44期

百度大脑

人工智能

【C++20协程原理】从Linux线程、线程与异步编程、协程与异步,一文带你弄清楚

奔着腾讯去

线程 多线程 进程 协程 C++20

持续写作的动力

张老蔫

28天写作

我们的护城河在哪

hackstoic

商业模式

性能分析之 PHP 应用进程过多导致的 page faults

zuozewei

php 性能测试 性能分析 签约计划第二季

实用机器学习笔记十三:随机梯度下降

打工人!

机器学习 AI 算法 学习笔记 12月日更

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