很多小伙伴都不知道怎么写详细设计,本期就带大家看一下详细设计都有哪些内容。
不同的公司,详细设计不太一样,有的细,有的粗,有的甚至没有详细设计。
像银行那种一个月上线一次的,详设可以写一个星期的,不在本文讨论范围内。
像老板说这个需求明天就要的,也不在本文讨论范围内。
本文介绍的是大多数场景:“这个需求,下周就要。”
详细设计文档一般包含以下这些内容:
01 基本信息
公司的文档一般有统一的规范格式,文档的开头,一般要包含公司信息、项目名称、业务名称、版本号等。
02 变更历史
每个文档都应该有一个变更历史,即使后面可能不会再变了
03 需求描述
这里可以简要描述需求,或放入需求文档的链接,方便随时查看详细设计对应的需求。
拒绝一句话需求:
产品:下周上个新功能:登录
程序员:需求呢?有具体一点的吗?
产品:就是登录啊!
程序员:!@#¥%……&*
04 功能拆分
有些需求很简单,需求说完,改哪些东西,心里就有数了。
但是更多的需求还是比较复杂的,比如我们这个示例:完成单点登录功能。这时需要开个需求分析会议。
需求分析会议一般由开发主导,在会上,需要将需求拆分出一个一个的功能点,功能点可以是界面,接口,集成某个技术等等。
有了功能点后,就可以大概估工时了,不过此时会估得比较粗,没办法,有些老板等不到你详细设计出来再给准确工时。
05 流程图
有了功能点后,就可以开始写详细设计了,流程图是详细设计里很重要的一块,也是开发文档中相对薄弱的一块。
常见的有基本流程图,时序图,可以从前端串到后端,用不同的颜色表示。
程序员大多看得懂流程图,却画不出流程图
06 接口设计
接口设计是详细设计中非常重要的一部分,一般包含两部分的信息
- 接口信息:描述、地址、请求方式、入参、出参。
- 处理逻辑:尽可能写得详细,读哪些配置,查哪张表哪个字段,甚至是写伪代码
工时估得准不准,就靠这里了写得清不清晰了
07 页面设计
页面设计也是详细设计中非常重要的一部分,一般包含几方面的内容:
- 如何进入页面?
- 页面有哪些操作元素?
- 表单有哪些校验?
- 点击按钮做什么操作?
- 有哪些看不见的逻辑?
- 跟后端有哪些交互?
工时估得准不准,就靠这里了写得清不清晰了
08 跑批设计
在中大型项目中,一般都会有跑批功能,可能是每天、每周、每月,做一些数据统计,汇总,或是集中处理。
这里的内容包括跑批的时间、周期、处理逻辑、关联跑批等
可以考虑下面几个问题:
- 数据量是否很大,是否需要分页?
- 跑批期间数据是否会更新?
- 多个跑批之间是否会有先后?
- 跑批失败如何重跑?
09 数据库设计
这里放入本次详设相关的数据库变更。
有可能是ddl,比如增加了某张表,增加了某个字段。也有可能是dml,比如相关的初始化配置,历史数据刷库等。
注意一个问题:需要有另外一个整个项目完整的数据库设计文档。当本次迭代上线后,及时将本次变更更新数据库文档中。
领导:给我个完整的数据库文档
程序员:没…没有,都在各个迭代里面了,数据库文档好久没维护了
领导:!@#¥%……&*
10 安全设计
一般可以从前面的步骤中,寻找可能出现安全性问题的地方。比如
- 前后端参数校验?
- 参数传递是否需要加密?
- 是否需要验签加签?
- 常见的漏洞处理,如SQL注入
- 敏感数据处理:身份证,手机号等加密存储
11 性能设计
再小的迭代也可能引起性能问题,一般测试环境数据量小,很难测试性能问题。
可以从下面几个方便考虑:
- 大数据量跑批,如每天的报表跑批
- 高访问量接口,如首页数据
- 大流量接口,如文件上传
《单点登录详细设计》百度网盘下载:
https://pan.baidu.com/s/15o2FgQZO3rm1d0D0RGj-Fg
提取码:pqnq
单点登录项目实战在这里:《Spring Cloud + Vue 前后端分离 开发企业级在线视频课程系统》
配套干货:
《Spring Cloud + Vue 前后端分离 开发企业级在线视频课程系统》:实战项目,前后端分离架构,可用于正式项目。
《开发工具IDEA从入门到爱不释手》:免费课,从基本操作到高级进阶,有效提高开发效率。