DDD领域驱动设计 - 设计文档模板

简介:

设计文档模板:

  1. 系统背景和定位
  2. 业务需求描述
  3. 系统用例图
  4. 关键业务流程图
  5. 领域语言整理,主要是整理领域中的各种术语的定义,名词解释
  6. 领域划分(分析出子域、核心域、支撑域)
  7. 每个子域的领域模型设计(实体、值对象、聚合、领域事件,需要注意的是:领域模型是需要抽象的,要分析业务本质,而不是简单的直接对需求进行建模)
  8. 领域模型详细说明(如为什么这样设计的原因、模型内对象的关系、各种业务规则、数据一致性规则等)
  9. 领域服务、仓储、工厂设计
  10. Saga流程设计
  11. 场景走查(讲述如何通过领域模型、领域服务、仓储、Saga流程等完成系统用例以及关键业务流程的)
  12. 架构设计(如传统三层架构、经典四层架构、CQRS/ES架构)

一些其他的思考:

  • 去除一切花俏的建模技巧,我觉得最重要的方向就是去努力分析问题和事物的本质,针对这个本质进行领域建模。这个领域建模,最主要的还是锻炼的人的事物抽象能力。10个人,建出来的领域模型都不同。本质原因就是大家对同一个问题的理解不同,对事物的本质的理解不同。虽然最终都能解决当前的问题,但是对适应未来需求变化的能力却是不同。
  • 所以,我们要把时间花在多理解业务上,让自己成为领域专家,只有这样,才能充分理解业务。多理解一点业务,你才能更好的抽象出业务本质最后的领域模型。
  • 领域建模是一个迭代的过程,人无完人,时间也很多时候不是很充足。所以,不太可能一步到位把领域设计做的很完美,会有一个持续的过程。整体项目规划的时候可能会有个大的架构设计、业务大图,但是不可能达到领域设计的粒度,只能是一期一期的完善,到最后可能才会有完整的上面的目录内容。每一期都需要考虑支持的场景约束、上下文、系统边界、持续集成的相关设计。设计product, not project。
目录
相关文章
|
传感器 安全 内存技术
[UDS] --- RoutineCommunicationControl 0x31
[UDS] --- RoutineCommunicationControl 0x31
1011 1
|
算法
雪花算法id生成器
雪花算法id生成器
726 0
|
前端开发 JavaScript 数据可视化
Echarts 折线图完全配置指南 - 手把手教你设置 Echarts 折线图详细教程
Echarts 折线图是图表中最常用的显示形式之一。使用 Echarts 做出基本的折线图很简单,但要是想把多组数据放在一张图表中,展示的漂亮又直观就不容易了。本文将带领大家从最基本的折线图,一步步完善,最终做出可读性很高的可视化图表。 根据本教程在卡拉云中搭建的折线图 Demo,你可以立即注册卡拉云,跟随本教程学习 跟随本教程你将学到 1.折线外观属性 折线增加弧线平滑过渡 折线图变为散状圆点 实线改为虚线 折线指定颜色 增加数据显示 表格外观属...
1672 0
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
1172 3
|
11月前
|
JavaScript 开发者 Windows
NVM 介绍及使用指南
NVM(Node Version Manager)是用于管理多个 Node.js 版本的命令行工具,帮助开发者在同一台机器上轻松切换不同版本的 Node.js,避免版本不兼容问题。本文介绍 NVM 的基本概念、Windows 安装方法及常用操作,助你高效管理 Node.js 版本。
1131 13
 NVM 介绍及使用指南
|
监控 Linux
linux之grep详解
linux之grep详解
|
Web App开发 安全 前端开发
X-Frame-Options响应头防点击劫持
X-Frame-Options响应头防点击劫持
554 6
|
自然语言处理 IDE 开发工具
通义灵码使用安装教程,3 分钟快速上手体验
通义灵码,是阿里云与通义实验室联合出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云的云服务使用场景调优,助力开发者高效、流畅的编码。目前个人版免费使用。
1897 10
|
Linux
百度搜索:蓝易云【如何在Linux系统安装文件同步工具:FreeFileSync?】
请注意,具体安装步骤可能会因不同的Linux发行版而有所差异。如果遇到任何问题,建议查阅FreeFileSync的官方文档或论坛,其中可能会提供更详细的安装说明和支持信息。
232 3
|
消息中间件 Kubernetes API
在K8S中,如何收集k8s集群日志?
在K8S中,如何收集k8s集群日志?