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

喜欢听我叨叨的,直接看视频

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

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

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

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

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

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

01 基本信息

公司的文档一般有统一的规范格式,文档的开头,一般要包含公司信息、项目名称、业务名称、版本号等。

02 变更历史

每个文档都应该有一个变更历史,即使后面可能不会再变了

03 需求描述

这里可以简要描述需求,或放入需求文档的链接,方便随时查看详细设计对应的需求。

拒绝一句话需求:

产品:下周上个新功能:登录

程序员:需求呢?有具体一点的吗?

产品:就是登录啊!

程序员:!@#¥%……&*

04 功能拆分

有些需求很简单,需求说完,改哪些东西,心里就有数了。

但是更多的需求还是比较复杂的,比如我们这个示例:完成单点登录功能。这时需要开个需求分析会议。

需求分析会议一般由开发主导,在会上,需要将需求拆分出一个一个的功能点,功能点可以是界面,接口,集成某个技术等等。

有了功能点后,就可以大概估工时了,不过此时会估得比较粗,没办法,有些老板等不到你详细设计出来再给准确工时。

05 流程图

有了功能点后,就可以开始写详细设计了,流程图是详细设计里很重要的一块,也是开发文档中相对薄弱的一块。

常见的有基本流程图,时序图,可以从前端串到后端,用不同的颜色表示。

程序员大多看得懂流程图,却画不出流程图

06 接口设计

接口设计是详细设计中非常重要的一部分,一般包含两部分的信息

  • 接口信息:描述、地址、请求方式、入参、出参。

  • 处理逻辑:尽可能写得详细,读哪些配置,查哪张表哪个字段,甚至是写伪代码

工时估得准不准,就靠这里了写得清不清晰了

07 页面设计

页面设计也是详细设计中非常重要的一部分,一般包含几方面的内容:

  • 如何进入页面?

  • 页面有哪些操作元素?

  • 表单有哪些校验?

  • 点击按钮做什么操作?

  • 有哪些看不见的逻辑?

  • 跟后端有哪些交互?

工时估得准不准,就靠这里了写得清不清晰了

08 跑批设计

在中大型项目中,一般都会有跑批功能,可能是每天、每周、每月,做一些数据统计,汇总,或是集中处理。

这里的内容包括跑批的时间、周期、处理逻辑、关联跑批等

可以考虑下面几个问题:

  • 数据量是否很大,是否需要分页?

  • 跑批期间数据是否会更新?

  • 多个跑批之间是否会有先后?

  • 跑批失败如何重跑?

09 数据库设计

这里放入本次详设相关的数据库变更。

有可能是ddl,比如增加了某张表,增加了某个字段。也有可能是dml,比如相关的初始化配置,历史数据刷库等。

注意一个问题:需要有另外一个整个项目完整的数据库设计文档。当本次迭代上线后,及时将本次变更更新数据库文档中。

领导:给我个完整的数据库文档

程序员:没...没有,都在各个迭代里面了,数据库文档好久没维护了

领导:!@#¥%……&*

10 安全设计

一般可以从前面的步骤中,寻找可能出现安全性问题的地方。比如

  • 前后端参数校验?

  • 参数传递是否需要加密?

  • 是否需要验签加签?

  • 常见的漏洞处理,如SQL注入

  • 敏感数据处理:身份证,手机号等加密存储

11 性能设计

再小的迭代也可能引起性能问题,一般测试环境数据量小,很难测试性能问题。

可以从下面几个方便考虑:

  • 大数据量跑批,如每天的报表跑批

  • 高访问量接口,如首页数据

  • 大流量接口,如文件上传

《单点登录详细设计》百度网盘下载:

https://pan.baidu.com/s/15o2FgQZO3rm1d0D0RGj-Fg

提取码:pqnq

—————— THE END ——————

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

  1. 老码农教你在 StackOverflow 上谈笑风生

    老码农教你在 StackOverflow 上谈笑风生 本文作者: 伯乐在线 - 老码农 . 欢迎加入伯乐在线 专栏作者. 作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人 ...

  2. 后端思维篇:手把手教你写一个并行调用模板

    前言 36个设计接口的锦囊中,也提到一个知识点:就是使用并行调用优化接口.所以接下来呢,就快马加鞭写第二篇:手把手教你写一个并行调用模板~ 一个串行调用的例子(App首页信息查询) Completio ...

  3. 老码农:如何写出让自己满意的代码

    今天有位朋友在微博上问我这样一个问题: "@老码农的自留地 ,最近出于学习目的写一个管理系统,越到后边,越觉得自己前边的代码写得烂.前辈,我想让代码写得更好一点,能不能谈谈你的经验,给我指点 ...

  4. 转载老码农教你学英语

    作者微博:@老码农的自留地 对于咱们这些高端大气.时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的.尤其是那些胸怀大志,想在码农行业闯出一片天地,成为秒杀身边小弟们的潜在大牛们,熟练掌握英语更是 ...

  5. 老码农教你学英语(学习素材)

    对于咱们这些高端大气.时刻需要和国际接轨的码农,英语的重要性自然是毋庸置疑的.尤其是那些胸怀大志的潜在大牛们,想在码农行业闯出一片天地,秒杀身边的小弟们,熟练掌握英语更是实现其目标最关键的因素之一.否 ...

  6. 码农西游 | 写一本技术书可以赚多少钱

    程序员的成长之路互联网/程序员/成长/职场  关注 阅读本文大概需要 3 分钟. 上班的钓鱼时光,八戒看到一篇写作赚钱的文章,联想到自己也是个技术人才,是不是可以学习一下他们,写一本技术书赚钱,特此去 ...

  7. 资深码农:拿下软件测试,只需掌握好这两种方法!

    摘要:软件测试是软件工程中非常重要的一个环节,本文将从软件测试的目的.白盒测试和黑盒测试两大分类和以及各自的具体分类,来阐述软测试的相关知识. 一.软件测试的目的 发现缺陷 尽早和尽量多的发现被测对象 ...

  8. 十年码农教你学习,linux内存管理——内存管理架构

    通常情况下,一个高级操作系统必须要给进程提供基本的.能够在任意时刻申请和释放任意大小内存的功能,就像malloc 函数那样,然而,实现malloc 函数并不简单,由于进程申请内存的大小是任意的,如果操 ...

  9. 带码农《手写Mybatis》进度3:实现映射器的注册和使用

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  10. 为什么码农要了解业务?(文末有福利)

    作者:黄进然 最近一位分析界的老前辈对我很无奈地摇摇头,"这帮程序员,不食人间烟火哪!"我也深有感触,全世界的码农都一个样. 这让我想起了,同样也是他,在多年之前,对我提了警醒-- ...

最新文章

  1. python怎么后退_使python迭代器向后退?
  2. scrapy (2)下载图片及存储信息
  3. 亿景WideLink系统与微软统一通信的整合
  4. 小米6发布,雷军亲手终结小米低价时代,低价竞争还能走多远?
  5. 035_Unicode对照表一
  6. MTK 软件设置路径
  7. ZooKeeper编程
  8. import java.io 包下载_Go 包管理机制深入分析
  9. python中fd和rt是什么意思_python中fd()是什么
  10. 失忆症later和crowd什么关系_约惠七夕把爱给到对的人 费洛蒙香水作用危害,费洛蒙是什么东西,费洛蒙香水有用吗...
  11. Jsp版本的计算器(九大对象)
  12. Linux触摸屏驱动分析(6410) -- s3c-ts
  13. 基于FPGA/数字IC的数字信号处理课程
  14. mapreduce新编程实例
  15. iOS日历攻略:提醒调休并过滤法定节假日
  16. oracle dbview用户,关于SQLRecoverableException问题的排查和分析
  17. N个鸡蛋放到M个篮子中
  18. dw cs6设置字体样式
  19. 虚拟化与元宇宙:人类文明演化的奇点与治理
  20. matlab画椭圆抛物面参数方程,求单叶双曲面和双叶双曲面、椭圆抛物面、双曲抛物面用matlab怎么画或其参数方程?...

热门文章

  1. xshell与xftp免费版
  2. 凸包算法 Matlab实现
  3. mysql官网社区免费版下载方法
  4. 计算机硬盘模式,电脑硬盘模式有哪些?各种电脑硬盘模式的优缺点对比
  5. html网页正确代码,html简单网页代码(html代码格式开头)
  6. GNS3 将虚拟机加入组网
  7. JDK8下载安装教程
  8. 1月10日云栖精选夜读:专访金榕:四年蜕变,阿里iDST是如何登上浪潮之巅的?
  9. 在线免费下载音乐网站源码,支持在线播放
  10. centos 8 配置yum源并安装开发工具包