后端的技术设计文档
一、 背景
1.简介
2.业务规划(非必需)
3.工作项拆解
拆解成多个工作项,每个工作项,需要多少人力。
4.资源评估(非必需)
有没有新的服务
二、架构设计
1.架构图(非必需,新服务比较需要)
2.技术选型
SpringCloud、Redis、Mysql、Mybatis
3.幂等设计(非必需)
4.数据迁移方案(历史数据的处理)
业务涉及数据迁移,数据批量变更等场景需要填写此项。
5.性能评估(非必需)
对于并发量和数据量较大的业务场景,需要考虑性能瓶颈。
三、时序流程图
**1.时序图 **
可以是系统维度,也可以是后台服务维度。
2.业务流程图(如果有时序图,也可以不用业务流程图)
业务流程图,偏向展示整体业务走向;设计时需要标明相较于上个版本的改动点,方便测试同学进行回归测试,避免遗漏。
3.状态机
展示状态机的流转。设计时需要标明相较于上个版本的改动点。
四、接口设计
1.接口清单及描述
五、数据存储设计
1.数据库表关联图
ER关系图,实体对象关系图。
2.表设计(存在变更时必填)
Mysql表结构设计,索引设计,SQL语句等;
如果预期表数据会超过2000w以上的要考虑分表方案。
3.缓存设计
对复杂的缓存设计,或者涉及内存缓存的,需要标明。
六、配置信息
当程序配置有新增点或者改动点时需要填写。
1.程序配置(存在配置变更时必填)
2.动态配置(存在配置变更时必填)
3.监控告警(核心业务最好有监控告警)
通过监控街区,先于用户发现问题,减少线上故障。
七、关联方信息
1.第三方设计文档
填写第三方设计文档地址,方便后续回溯。
八、灰度方案(非必需)
1.灰度方案
灰度方案和进行灰度测试时需要的数据
2.灰度配置
进行灰度测试时需要做哪些配置,配置流程
九、检查项(必填)
判断是否存在以下检查项
检查项 | 检查内容 | 是 | 否 |
---|---|---|---|
方案评审 | 是否需要进行方案评审,大版本需要进行方案评审 | ||
敏感数据 | 检查是否涉及用户敏感数据 | ||
SQL注入 | 检查是否存在SQL注入漏洞 | ||
越权漏洞 | 检查是否有越权安全漏洞 | ||
依赖检查 | 发布前是否依赖第三方发布顺序,若有需在检查项表下标明依赖方 | ||
服务配置 | 是否有生产环境配置项需要配置,如有请在配置信息一项标明 | ||
环境配置 | 是否有新接入redis、mongodb、mysql、es等环境配置项 | ||
定时任务 | 检查是否需要新建定时任务 | ||
数据库 | 检查是否需要创建库和表,是否需要执行SQL语句 | ||
灰度 | 是否需要进行灰度测试 | ||
接口压测 | 是否有接口需要压测 | ||
白名单配置 | 是否有第三方IP需要开白 | ||
编码检查 | 是否需要进行codereview、编码规约 |
十、其它文档
1.产品需求文档
2.测试用例
填写自测文档、贴测试用例链接。
3.开发压测方案(非必需)
开发提供压测方案,方便测试压测使用。