手记

资深码农教你写详细设计(附示例模板)

2020-11-25 09:53:553608浏览

甲蛙

4实战 · 15手记 · 3推荐

很多小伙伴都不知道怎么写详细设计,本期就带大家看一下详细设计都有哪些内容。

不同的公司,详细设计不太一样,有的细,有的粗,有的甚至没有详细设计。

像银行那种一个月上线一次的,详设可以写一个星期的,不在本文讨论范围内。

像老板说这个需求明天就要的,也不在本文讨论范围内。

本文介绍的是大多数场景:“这个需求,下周就要。”

详细设计文档一般包含以下这些内容:

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 前后端分离 开发企业级在线视频课程系统》:实战项目,前后端分离架构,可用于正式项目。
《开发工具IDEA从入门到爱不释手》:免费课,从基本操作到高级进阶,有效提高开发效率。

3人推荐
随时随地看视频
慕课网APP