后端开发流程 | 青训营笔记

90 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

前言

本次主要是对开发与迭代中的课程进行学习并记录。

一、本堂课重点内容:

  1. 为什么要有流程?
  2. 有哪些流程
  3. 怎样执行流程

二、详细知识点介绍:

为什么要有流程?

我的理解:

  1. 确保质量:通过流程可以确保需求在上线前经过了合适的测试,避免出现质量问题。
  2. 提高效率:通过明确的流程,可以帮助团队节约时间和精力,提高工作效率。
  3. 增强沟通:流程可以帮助团队之间的沟通,确保所有的成员都了解了上线需求的情况。
  4. 提高安全性:流程可以帮助团队确保安全,避免出现安全漏洞。

流程的各个阶段:

  1. 需求阶段
  2. 开发阶段
  3. 测试阶段
  4. 发布阶段
  5. 运维阶段

传统瀑布模型:

image.png

敏捷开发:

简单来说就是以更小的团队更快速的进行迭代

  • 以小团队快速迭代
  • 团队成员之间合作更加紧密
  • 以人为本

管理框架SAFe

The Scaled Agile Framework

  • 精益产品开发
  • 敏捷软件开发
  • 系统思考 这套框架为企业中实施敏捷开发提供一套方法论,目前比较大的厂实际接触的就是这套模型
    现代Scrum:

image.png

敏捷教练可以比作队长,产品负责人就是联络指挥部和发布任务的人,其他成员就是特种兵。

有哪些流程

需求阶段

MVP(minimum viable product)思想

  • 站在用户的角度思考
  • 收集用户反馈,快速迭代 有些事情既重要又紧急,那么就该先去做,不重要不紧急可以最后做。
开发阶段


云原生的发展,深刻改变了后端开发的工作
传统虚拟机-->容器
单体架构-->微服务
云原生IDE可以很好解决开发环境搭建的问题

团队分支策略:


有些团队会直接把开发的分支合入master,然后再用某个master上的commit发布
有些团队会有一个专门的分支叫release分支,大家都把代码合并到release分支,然后测试,发布,之后再把release分支合会master

代码规范、自测和文档

image.png

测试阶段
测试金字塔

image.png 越底层的测试颗粒度越细,就需要越多的数量去覆盖所有场景,越顶层的测试越能用少量的case覆盖大多数场景。

image.png

发布阶段
各种发布模式
蛮力发布

最简单粗暴的 image.png

金丝雀发布

image.png

滚动发布

image.png

蓝绿发布

image.png

红黑发布

基于蓝绿发布

image.png 发布模式还不止这几种

运维阶段

观察监控和日志

流程怎样优化

从需求到上线全流程自动化,就同时提高了质量和效率。

DevOps

image.png 从需求开始,写代码,编译,测试,发布,运维,监控,形成一个闭环。
效率竖井:

image.png

全流程自动化

image.png 可以把价值流,作为全流程的指标。

三、课后个人总结:

通过本次学习,学习到了一些开发中很重要的知识,就是我们需求上线的整个流程。通过对流程的Why,What,How进行学习,掌握了各个阶段的许多知识。而这些知识,通过思路,可以无疑的减少我们开发时出现的问题。由于我本人没上过软件工程课,第一次接受这样知识,理解仍有偏差和误区且不全面。