本文是我在学习(程序员Carl (opens new window))的原创作品《代码随想录》做的笔记。现上传到我的博客,大家可以去看看大佬的作品,真的很不错。

1.需求文档

​ 我们要根据需求文档来确定我们究竟要做什么,而且每个阶段的需求文档相当于是把这个项目的整个迭代过程都记录下来了。

2.包含的功能

3.难点

​ 记录难点并进行量化。记录下如何克服困难。

4.架构图

​ 画架构图的过程中,也增添自己对整个系统架构的掌握程度,展示每个模块和每一个模块之间的依赖关系。

5.定协议

​ 后台模块之间进行通讯需要协议,后台和前端通讯也需要协议。所以只要有交互,就要确定协议的数据格式。

​ 定协议要考虑到兼容,要考虑易于维护。

6.设计数据结构和算法

7.预估一下容量

​ 估计出 我们自己模块大体需要多大磁盘,多大内存,多大带宽,多少核CPU。

8.考虑部署

​ 要考虑如果一台机器挂了(可能是硬件原因),那么我们的模块还能不能正常提供服务。这就是考虑模块的容灾性,一般都是采用分布式,服务部署在三台机器上,一台如果挂了,还有其他两台提供服务。还有就是要弹性可伸缩,即我们的模块可不可以直接 部署多台机器来提高承载能力。如果用户量突然上来了,或者流量突然上来了,可以通过快速部署多台机器来抗住流量。而不是模块只能在单机上跑,多部署几台就发生各种问题。

9.设计评审

​ 主要评审你的模块 会不会给其他模块或者整个系统带来什么问题 以及 设计的是否合理。

10.写代码

11.自测

12.联调

13.测试

14.复查代码

​ 代码合入主干之前,需要项目组评审一下代码。之前是评审设计,看设计上有没有什么缺失,这次是看看代码写的怎么样。例如合入主干是否有问题,代码兼容性,接口设计等等,甚至字段,函数,变量名,命名是否合理。

15.合入主干

16.发布

注:本文的封面图片由Willfried WendePixabay上发布