需求到上线 | 青训营笔记
这是我参与「第三届青训营 -后端场」笔记创作活动的第 2 篇笔记
这节课让我这样的在校学生了解到了企业中的开发流程,以及合作方式。更对日常工作有了一些理解。
需求阶段
- 不要浪费时间讨论不应该存在的问题
- 站在用户的角度思考
- 给出后端系统视角的建议,估算任务优先级
开发阶段
- 云原生下的开发
- WebIDE:好处是不需要配置环境,打开网页就可以进行开发。
- 容器化技术:环境隔离,开发环境、测试环境以及生产环境
- 团队分支策略
- 根据团队要求,基本都是 Github 分支策略
- 代码规范
- 正确使用IDE的重构功能,防止修改错误
- 不要有魔法数字,魔法字符串
- 养成良好的注释习惯!
- 自测很重要。不要把所有测试任务都交给测试。
- 文档
- 大型改造需要有技术设计文档,方案评审
- 好的接口文档能更方便的和前端进行沟通
测试阶段
- 功能测试
-
功能测试,是为了测试一个新开发的功能,因此需要有能模拟线上的开发和测试环境,环境之间能相互隔离,这样可以独立验证不同的新功能
-
集成测试:集成测试,是为了把几个功能合在一起测试,因为可能各个新功能独立测试没有问题,但是合在一起却产生了bug
-
回归测试:回归测试是为了验证老的功能不被新的改动影响
-
发布阶段
- 各种发布模式
- 金丝雀发布:由于金丝雀对瓦斯极其敏感,因此以前矿工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。
- 优点:
- 相对简单
- 能够用少量用户验证新版本功能
- 缺点:
- 发布过程中服务会中断
- 发现不了随用户量增大才会暴露的问题
- 适用:
- 测试环境部署
- 小公司或非核心的业务服务
- 优点:
- 常用的是滚动发布,每个实例都通过金丝雀的方式逐步放大流量,对用户影响小,体验平滑
- 优点:
- 发布过程中服务不会中断
- 能够充分验证新版本功能
- 缺点:
- 流程较复杂,对发布系统有较高的要求
- 发布速度较慢
- 新老版本不兼容的情况不能使用
- 适用:
- 发布系统能力强,可以平滑切换流量
- 发布自动化程度高,可以自动滚动
- 优点:
- 蓝绿发布:常备两个集群,先把流量全部切换到Group 1,升级Group2,然后再把流量全部切换到Group 2,升级Group 1。最终恢复流量。
- 优点:
- 发布速度快
- 流程相对简单
- 缺点:
- 需要有一半机器承担所有流量的能力
- 出问题会影响全部用户
- 适用:
- 服务器资源丰富
- 新老版本不兼容的情况,需要一次性升级到新版本
- 优点:
- 红黑发布:与蓝绿发布类似,但是日常只有一个集群工作,发布时扩容一个集群升级新版本,切换流量后下掉老版本的集群。
- 优点:
- 发布速度快
- 流程相对简单
- 缺点:
- 对机器数量有要求,需要能扩容一倍
- 出问题会影响全部用户
- 适用:
- 服务器资源丰富
- 新老版本不兼容的情况,需要一次性升级到新版本
- 优点:
- 金丝雀发布:由于金丝雀对瓦斯极其敏感,因此以前矿工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。
常用的发布模式: www.cnblogs.com/Leo_wl/p/14…