产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

实施领域驱动设计团队的文档指南

  • 2013-05-30
  • 本文字数:808 字

    阅读完需:约 3 分钟

对于做一个新软件项目的团队来说,应该做的第一件事就是绘制情境图(context map),帮助他们理解情境和核心领域是什么,以及他们可能需要与哪些其他情境交互。最重要的就是要让所有与开发这个软件相关的人员都对领域有一致的理解, Paul Rayner 是一位顾问和教练,作为对问题的回应,它说明了实施领域驱动设计的团队应该创建什么类型的文档。

Paul 以终为始,先理解为什么我们要创建文档;每种文档的目标是什么? 考虑一下你的受众,并让你的文档适应他们的需要。读者是偏向技术层面还是业务层面呢,这是面向技术还是面向业务的文档呢? 正如 Paul 写到: “尊重你的受众”。
另一个重要的问题与时间相关: 这个文档是要当前在团队开发软件的时候为其提供支持,还是要支持将来的开发?

对于支持开发中的团队的情况,Paul 建议持续记录文档(作为持续进行、即时、活动的文档)而不是创建(一次完成不再改变的)文档,那更可能会保持文档正确而值得信任。
对于将来的开发,Paul 考虑到,在代码、支持性测试或者其他产品特别是与文档相关的内容中找不到相关的知识。没有这种知识文档,就没有人真正知道系统最终会是什么样子。

Paul 发现敏捷团队通常更喜欢使用轻量级的方法,来描述系统需要做什么,而不喜欢更详细的需求说明书。详细说明书的一个问题在于,设计决定通常做出得过于匆忙,对领域和技术的知识都准备不足,从而使设计与实现分离。Paul 引用了 Mary Poppendieck 的话:

经常看到的现象是,详细的需求列表和故事的 backlog 实际上都是业余选手所做的很糟糕的系统设计。

BDD
Paul 是使用 BDD 工具来为系统创建实时文档的狂热分子。他倾向于使用 Cucumber 工具,因为它使用的方式可以把普遍的语言和技术实现分离开来。

Paul Rayner 是一位经验丰富的设计教练和领导力导师,擅长 DDD、BDD 和精益与敏捷过程。在 DDD Exchange 2012 上,Paul 发表了演讲: 驱动建模漩涡的领域场景

查看英文原文: Documentation Guide for Teams Doing Domain-Driven Design

2013-05-30 01:291639
用户头像

发布了 340 篇内容, 共 129.5 次阅读, 收获喜欢 13 次。

关注

评论

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

参天生长大模型:昇腾AI如何强壮模型开发与创新之根?

脑极体

元宇宙社交应用,靠什么吸引用户「为爱发电」?

融云 RongCloud

元宇宙

云服务器基于 SSH 协议实现免密登录

昆吾kw

Linux SSH 云服务器

IFIT的架构与功能

穿过生命散发芬芳

8月月更 IFIT

测试开发【Mock 平台】08 开发:项目管理(四)编辑功能和Component抽离

MegaQi

8月月更

超大模型工程化实践打磨,百度智能云发布云原生 AI 2.0 方案

Baidu AICLOUD

资源调度 异构计算 AI加速 GPU容器虚拟化 云原生AI

Thread State 详解

自然

Thread 8月月更

Kubernetes 选举机制HA

CTO技术共享

开源 签约计划第三季 8月月更

RocketMQ 消息集成:多类型业务消息——定时消息

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列

Apache DolphinScheduler 3.0.0 正式版发布!

白鲸开源

海豚调度 DolphinScheduler 调度器 版本发布

《DevOps围炉夜话》- Pilot - CNCF开源DevOps项目DevStream简介 - feat. PMC成员胡涛

玩转Devop和研发效能DevStream/DevLake

开源 DevOps cncf WLB

开源一夏 | 盘点 GitHub 那些标星超过 20 K 的 Golang 优质开源项目

宇宙之一粟

GitHub 开源 Go 语言 gopher 8月月更

MySQL高级指令

武师叔

8月月更

2022-Java后端工程师面试指南-(计算机网络)

自然

网络 watt network 8月月更

风控逻辑利器---规则引擎

转转技术团队

Java 规则引擎 风控 后端、 特征工程

API服务网关

阿泽🧸

API网关 8月月更

机器学习模型验证:被低估的重要一环

澳鹏Appen

人工智能 机器学习 模型开发 模型开发训练 模型验证

ThreadLocal全面解析(一)

自然

ThreadLocal 8月月更

Kubernetes 计算CPU 使用率

CTO技术共享

开源 签约计划第三季 8月月更

云渲染的应用正在扩大,越来越多的行业需要可视化服务

Finovy Cloud

云渲染 GPU渲染

开源一夏 | 提高代码可重用性,减少重复劳动--手把手带你实现Python自定义模块并上传到pypi,贡献自己创造的轮子为所有人使用,让Python开发更加简单

迷彩

Python 开源 签约计划第三季 8月月更 自定义模块

什么是企业知识库?有什么作用?如何搭建?

金陵老街

vue cli 知识库 spring-boot

【C#】WCF和TCP消息通信练习,实现群聊功能

南蓬幽

签约计划第三季 8月月更

每日一R「03」Borrow 语义与引用

Samson

8月月更 ​Rust

一次由groovy引起的fullGC问题排查

转转技术团队

canvas

Jason199

canvas 8月月更

Java System.lineSeparator 方法

HoneyMoose

What's new in dubbo-go-pixiu 0.5.1

apache/dubbo-go

dubbogo Dubbo3 Dubbo网关

RocketMQ整体架构与基本概念

急需上岸的小谢

8月月更

【LeetCode】把二叉搜索树转换为累加树Java题解

Albert

LeetCode 8月月更

10道不得不会的Docker面试题

JavaPub

redis Docker

实施领域驱动设计团队的文档指南_架构_Jan Stenberg_InfoQ精选文章