详细设计技术方案模板
一、概要说明
二、详细设计
1、功能详细设计(必选)说明:聚焦一个系统或一个模块,针对单个功能进行详细设计,这里不仅要表达与外部系统之间的交互,还要表达系统内部的交互,另外可以详细说明核心代码改动点
2、交互API设计(可选:涉及到交互API的新增和修改时必选)说明:根据上述分析和设计,识别出所有系统之间的交互,针对这些交互进行API设计,整体技术方案中可以不对API进行详细设计,重点是将所有API识别出来不要遗漏。
重要:交互API是一个系统对外的门户,一定要经过合理的抽象和封装。如果API设计得好,未来系统内部重构可以做到对外部无感知如果API设计得不好,系统内部一旦重构,外部系统就要跟着配合改造。
范围:BTTP接口、RPC接口、MQ消息等
3、数据模型设计(可选:涉及到数据模型的新增和修改时必选)说明:最核心的是数据库模型设计,比如新增了什么库、表、表字段、扩展字段等,比如表字段、扩展字段新增了什么枚举值等,比如新的场景复用了什么表、字段、扩展字段、枚举值等。
重要:数据模型是系统设计中最重要的固化产出,一旦落地,未来再修改的成本将会非常大,所以需要非常重视数据模型的设计。
范围:数据库模型、Redis缓存数据模型等
4、核心代码结构设计(可选:涉及核心代码的新增和变更时必选)说明:针对代码结构、代码骨架以及核心的类进行抽象和设计,体现类的关系以及类的核心属性和方法。
工具:类图等,建议统一使用wiki自带的Gliffy Diagram工具进行画图,如果比较简单,直接通过表格罗列即可。
观点:代码结构、代码骨架非常重要,真正决定了未来是什么样子
三、外部依赖识别(可选,涉及到外部依赖变更时必选)说明:识别依赖其他模块提供的REST、RPC、MQ等各种依赖。注意不仅包含依赖其他模块提供新的REST、RPC、MQ还包含依赖其他模块在原来REST、RPC、MQ的基础上做的修改或升级。
注意:核心链路增加外部依赖,需要重点评估是强依赖还是弱依赖,需要关注新增的外部依赖对核心链路的影响,防止不合理的依赖导致核心链路故障四、改动影响范围评估(必选说明:评估本次需求改动点及其影响范围,在详细设计阶段不一定能够评估全,在开发过程中、在需求提测前可以继续补充,保证评估的全面性。注意:后续测试根据这些改动点和影响范围制定整体的测试方案和测试用例,所以改动点和影响范围需要评估全面,否则很容易发生测试遗漏,导致线上问题
提醒:在详细设计阶段,评估很可能覆盖不全,开发过程中难免出现新的改动点,可以在需求提测前补充完整
五、风险评估
六、稳定性和防资损设计
概要设计其术方案稷板
一、需求介绍
说明:对整体需求进行概要介绍,可以贴BRD或PRD链接,进行需求核心内容介绍,帮助相关人员熟悉需求概貌,从而有助于理解技术方案要术:复杂流程需要搭配流程图说明,有时候一图胜千言,可以要求产品在MD或PRD中提供
二、概要设计
1、业务流程分析(可选:涉及到复杂业务流程需要在前期对齐时必选)说明:根据整体需求分析进行核心业务流程分析,这部分是整个设计的基石,是建立需求分析到系统设计之间的桥梁,需要跟业务和产品对
2、系统交互视图(必选)说明:通过一个完整的应用交互视图,体现项目中所有相关的系统(只要体现业务域,不需要体现业务域内部多个具体系统名称)系统中包含的核心功能、核心功能之间的关键交互等
3、核心流程拆解(必选)说明:根据对上述分析和设计,提炼和拆解出所有核心业务流程,以及核心流程的核心功能,后续需要针对这些核心业务流程进行具体设计
4、核心技术点设计
1)领域模型设计(可选:涉及到核心领域模型变动时必选)说明:如果涉及到核心领域模型的变化,需要首先进行核心领域模型的设计,注意领域模型是概念模型是为了表达业务概念的组成和关系,跟数据模型/物理模型不需要完全匹配,在概要设计阶段也不需要太过关注细化。
重要:领域模型是概要设计前期最重要的产出,需要特别重视,需要跟产品对齐。
2)领域状态设计(可选:涉及到核心领域状态变动时必选)说明:涉及到核心领域状态的,需要进行状态机设计
3)逻辑架构设计(可选:涉及到新建系统或逻辑架构变动时必选)说明:如果涉及到新起系统,需要涉及到逻辑架构设计以及工程规范,包括分层、模块设计、组件设计等
4)核心流程概要设计(可选:涉及核心流程需要在概要设计阶段对齐时必选)说明:针对核心业务流程进行设计,通过多个系统之间的协作和交互,以及它们之间序列和组合,从而完成一个完整的业务流程。
三、风险评估风险类型:项目进度风险、技术难度风险、稳定性风险、资损风险等风险等级:高、中、低