资深码农教你写详细设计(附示例模板)
很多小伙伴都不知道怎么写详细设计,本期就带大家看一下详细设计都有哪些内容。
喜欢听我叨叨的,直接看视频
资深码农教你写详细设计(附模板)
不同的公司,详细设计不太一样,有的细,有的粗,有的甚至没有详细设计。
像银行那种一个月上线一次的,详设可以写一个星期的,不在本文讨论范围内。
像老板说这个需求明天就要的,也不在本文讨论范围内。
本文介绍的是大多数场景:“这个需求,下周就要。”
详细设计文档一般包含以下这些内容:
01 基本信息
公司的文档一般有统一的规范格式,文档的开头,一般要包含公司信息、项目名称、业务名称、版本号等。
02 变更历史
每个文档都应该有一个变更历史,即使后面可能不会再变了
03 需求描述
这里可以简要描述需求,或放入需求文档的链接,方便随时查看详细设计对应的需求。
拒绝一句话需求:
产品:下周上个新功能:登录
程序员:需求呢?有具体一点的吗?
产品:就是登录啊!
程序员:!@#¥%……&*
04 功能拆分
有些需求很简单,需求说完,改哪些东西,心里就有数了。
但是更多的需求还是比较复杂的,比如我们这个示例:完成单点登录功能。这时需要开个需求分析会议。
需求分析会议一般由开发主导,在会上,需要将需求拆分出一个一个的功能点,功能点可以是界面,接口,集成某个技术等等。
有了功能点后,就可以大概估工时了,不过此时会估得比较粗,没办法,有些老板等不到你详细设计出来再给准确工时。
05 流程图
有了功能点后,就可以开始写详细设计了,流程图是详细设计里很重要的一块,也是开发文档中相对薄弱的一块。
常见的有基本流程图,时序图,可以从前端串到后端,用不同的颜色表示。
程序员大多看得懂流程图,却画不出流程图
06 接口设计
接口设计是详细设计中非常重要的一部分,一般包含两部分的信息
接口信息:描述、地址、请求方式、入参、出参。
处理逻辑:尽可能写得详细,读哪些配置,查哪张表哪个字段,甚至是写伪代码
工时估得准不准,就靠这里了写得清不清晰了
07 页面设计
页面设计也是详细设计中非常重要的一部分,一般包含几方面的内容:
如何进入页面?
页面有哪些操作元素?
表单有哪些校验?
点击按钮做什么操作?
有哪些看不见的逻辑?
跟后端有哪些交互?
工时估得准不准,就靠这里了写得清不清晰了
08 跑批设计
在中大型项目中,一般都会有跑批功能,可能是每天、每周、每月,做一些数据统计,汇总,或是集中处理。
这里的内容包括跑批的时间、周期、处理逻辑、关联跑批等
可以考虑下面几个问题:
数据量是否很大,是否需要分页?
跑批期间数据是否会更新?
多个跑批之间是否会有先后?
跑批失败如何重跑?
09 数据库设计
这里放入本次详设相关的数据库变更。
有可能是ddl,比如增加了某张表,增加了某个字段。也有可能是dml,比如相关的初始化配置,历史数据刷库等。
注意一个问题:需要有另外一个整个项目完整的数据库设计文档。当本次迭代上线后,及时将本次变更更新数据库文档中。
领导:给我个完整的数据库文档
程序员:没...没有,都在各个迭代里面了,数据库文档好久没维护了
领导:!@#¥%……&*
10 安全设计
一般可以从前面的步骤中,寻找可能出现安全性问题的地方。比如
前后端参数校验?
参数传递是否需要加密?
是否需要验签加签?
常见的漏洞处理,如SQL注入
敏感数据处理:身份证,手机号等加密存储
11 性能设计
再小的迭代也可能引起性能问题,一般测试环境数据量小,很难测试性能问题。
可以从下面几个方便考虑:
大数据量跑批,如每天的报表跑批
高访问量接口,如首页数据
大流量接口,如文件上传
《单点登录详细设计》百度网盘下载:
https://pan.baidu.com/s/15o2FgQZO3rm1d0D0RGj-Fg
提取码:pqnq
—————— THE END ——————
资深码农教你写详细设计(附示例模板)相关推荐
- 老码农教你在 StackOverflow 上谈笑风生
老码农教你在 StackOverflow 上谈笑风生 本文作者: 伯乐在线 - 老码农 . 欢迎加入伯乐在线 专栏作者. 作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人 ...
- 后端思维篇:手把手教你写一个并行调用模板
前言 36个设计接口的锦囊中,也提到一个知识点:就是使用并行调用优化接口.所以接下来呢,就快马加鞭写第二篇:手把手教你写一个并行调用模板~ 一个串行调用的例子(App首页信息查询) Completio ...
- 老码农:如何写出让自己满意的代码
今天有位朋友在微博上问我这样一个问题: "@老码农的自留地 ,最近出于学习目的写一个管理系统,越到后边,越觉得自己前边的代码写得烂.前辈,我想让代码写得更好一点,能不能谈谈你的经验,给我指点 ...
- 转载老码农教你学英语
作者微博:@老码农的自留地 对于咱们这些高端大气.时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的.尤其是那些胸怀大志,想在码农行业闯出一片天地,成为秒杀身边小弟们的潜在大牛们,熟练掌握英语更是 ...
- 老码农教你学英语(学习素材)
对于咱们这些高端大气.时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的.尤其是那些胸怀大志的潜在大牛们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键的因素之一.否 ...
- 码农西游 | 写一本技术书可以赚多少钱
程序员的成长之路互联网/程序员/成长/职场 关注 阅读本文大概需要 3 分钟. 上班的钓鱼时光,八戒看到一篇写作赚钱的文章,联想到自己也是个技术人才,是不是可以学习一下他们,写一本技术书赚钱,特此去 ...
- 资深码农:拿下软件测试,只需掌握好这两种方法!
摘要:软件测试是软件工程中非常重要的一个环节,本文将从软件测试的目的.白盒测试和黑盒测试两大分类和以及各自的具体分类,来阐述软测试的相关知识. 一.软件测试的目的 发现缺陷 尽早和尽量多的发现被测对象 ...
- 十年码农教你学习,linux内存管理——内存管理架构
通常情况下,一个高级操作系统必须要给进程提供基本的.能够在任意时刻申请和释放任意大小内存的功能,就像malloc 函数那样,然而,实现malloc 函数并不简单,由于进程申请内存的大小是任意的,如果操 ...
- 带码农《手写Mybatis》进度3:实现映射器的注册和使用
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 为什么码农要了解业务?(文末有福利)
作者:黄进然 最近一位分析界的老前辈对我很无奈地摇摇头,"这帮程序员,不食人间烟火哪!"我也深有感触,全世界的码农都一个样. 这让我想起了,同样也是他,在多年之前,对我提了警醒-- ...
最新文章
- python怎么后退_使python迭代器向后退?
- scrapy (2)下载图片及存储信息
- 亿景WideLink系统与微软统一通信的整合
- 小米6发布,雷军亲手终结小米低价时代,低价竞争还能走多远?
- 035_Unicode对照表一
- MTK 软件设置路径
- ZooKeeper编程
- import java.io 包下载_Go 包管理机制深入分析
- python中fd和rt是什么意思_python中fd()是什么
- 失忆症later和crowd什么关系_约惠七夕把爱给到对的人 费洛蒙香水作用危害,费洛蒙是什么东西,费洛蒙香水有用吗...
- Jsp版本的计算器(九大对象)
- Linux触摸屏驱动分析(6410) -- s3c-ts
- 基于FPGA/数字IC的数字信号处理课程
- mapreduce新编程实例
- iOS日历攻略:提醒调休并过滤法定节假日
- oracle dbview用户,关于SQLRecoverableException问题的排查和分析
- N个鸡蛋放到M个篮子中
- dw cs6设置字体样式
- 虚拟化与元宇宙:人类文明演化的奇点与治理
- matlab画椭圆抛物面参数方程,求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?...