一. 业务背景
● 产品需求文档prd链接
● 强烈建议产品prd中提供业务流程图, 明确不同角色的操作流程、边界条件、异常处理等业务规则。
● 开发过技术方案时,最好将产品的设计大概快速讲解一下,对齐下是否大家理解一致
● 全文名词解释
二. Todo & Not Todo
● 明确这次需求的边界,需要做哪些功能,不做哪些功能,防止产品提的没做,产品没有提的做了
三. 数据库表设计
记录数据库表变动
● 库表结构变动
● 新增字段, 字段名称\类型\默认值(默认值如何处理, 是否需要借助程序设置)\注释等等
● 字段修改, 索引\唯一字段\类型修改等
● 新建表, 记录完整DDL语句, 若有初始化数据必要, 也提供初始化方式说明
表格 ER图 提供完整的sql语句
四. 详细设计
设计文档的核心, 该部分内容更偏向于对设计方案的可视化展示, 主要面向技术人员.
● 领域建模图,若使用DDD, 则记录上下文映射图、领域模型图等
● 架构图, 技术架构图、业务功能架构图、部署架构图等。
● 设计类图
● 时序图
● 流程图
● 数据流图
● 部署图
● 其他能明确表达设计思路和意图的图示等等.
● 适当、简洁、清晰的文字描述
(PS: 设计不需要精确到代码级别,一是花费时间精力成本较高,二是可能导致过度设计导致。设计阶段不要关注细节, 细节或其他相关基础设施简要提及,留在代码实现阶段实现 ------当然如果需求本身更偏向技术而非业务,就不需要遵循这点。)