从需求到上线全流程 | 青训营笔记

156 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记

为什么要有流程?

  • 个人开发者是不需要流程的
  • 超过一个人的团队就需要协作
  • 随着团队规模上升,会出现全新的问题

复杂项目没有流程会有什么问题:

  • 需求阶段:每个人都有自己的想法,团队决策需要有一个过程
  • 开发阶段:多人/多端协作开发,每个人有自己的安排,相互配合需要有一个流程
  • 测试阶段:产物怎样交付,测试如何开展,BUG怎么修都需要流程
  • 发布阶段:怎样确保发布过程平稳丝滑,版本和流量如何控制,需要有规范
  • 运维阶段:线上问题如何应急响应,处理用户反馈和线上问题需要有流程

更现代的流程模型

  • 以小团队快速迭代
  • 团队成员之间的合作更加紧密
  • 以人为本,和用户沟通

5AFe是一套管理框架

  1. 精益产品开发
  2. 敏捷软件开发
  3. 系统思考

哪些流程?

需求阶段

MvP (minimum viable product,最小化可行产品)思想

  • 站在用户的角度思考
  • 收集用户反馈,快速迭代

开发阶段

  • 开发环境逐渐云原生化
  • Faas,Paas等等技术,让开发逐渐从本地IDE向线上转变
  • 从入职领到电脑搭建完一套完整的开发环境需要很久,通过WEB IDE等技术,环境未来将会开箱即用 代码规范
  • 养成良好的注释习惯,超过三个月的代码,自己都会忘了当时在想什么
  • 不要有魔法数字,魔法字符串
  • 重复的逻辑抽象成公共的方法,不要copy代码
  • 正确使用IDE的重构功能,防止修改错误 自测
  • 单元测试
  • 功能环境测试
  • 测试数据构造 文档
  • 大型改造需要有技术设计文档,方案评审
  • 好的接口文档能更方便的和前端进行沟通

测试阶段

功能环境

  • 需要一个能模拟线上的环境进行开发和测试
  • 环境和环境之间能够隔离,不影响其他功能的开发和测试 集成环境
  • 不同人开发的功能合并在一起测试,相互之间的影响可能产生缺陷
  • 迭代发布的所有功能合并在一起测试,确保发布的所有功能之间的影响不产生缺陷 回归环境
  • 确保新的功能不对老的功能产生影响
  • 回归测试一般会借助自动化测试脚本

发布阶段

蛮力发布、金丝雀发布、滚动发布、蓝绿发布、红黑发布

运维阶段

流程优化

Devops解决方案

  • 代码管理
  • 自动化测试
  • 持续集成
  • 持续交付