这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
前言
本次主要是对开发与迭代中的课程进行学习并记录。
一、本堂课重点内容:
- 为什么要有流程?
- 有哪些流程
- 怎样执行流程
二、详细知识点介绍:
为什么要有流程?
我的理解:
- 确保质量:通过流程可以确保需求在上线前经过了合适的测试,避免出现质量问题。
- 提高效率:通过明确的流程,可以帮助团队节约时间和精力,提高工作效率。
- 增强沟通:流程可以帮助团队之间的沟通,确保所有的成员都了解了上线需求的情况。
- 提高安全性:流程可以帮助团队确保安全,避免出现安全漏洞。
流程的各个阶段:
- 需求阶段
- 开发阶段
- 测试阶段
- 发布阶段
- 运维阶段
传统瀑布模型:
敏捷开发:
简单来说就是以更小的团队更快速的进行迭代
- 以小团队快速迭代
- 团队成员之间合作更加紧密
- 以人为本
管理框架SAFe
The Scaled Agile Framework
- 精益产品开发
- 敏捷软件开发
- 系统思考
这套框架为企业中实施敏捷开发提供一套方法论,目前比较大的厂实际接触的就是这套模型
现代Scrum:
敏捷教练可以比作队长,产品负责人就是联络指挥部和发布任务的人,其他成员就是特种兵。
有哪些流程
需求阶段
MVP(minimum viable product)思想
- 站在用户的角度思考
- 收集用户反馈,快速迭代 有些事情既重要又紧急,那么就该先去做,不重要不紧急可以最后做。
开发阶段
云原生的发展,深刻改变了后端开发的工作
传统虚拟机-->容器
单体架构-->微服务
云原生IDE可以很好解决开发环境搭建的问题
团队分支策略:
有些团队会直接把开发的分支合入master,然后再用某个master上的commit发布
有些团队会有一个专门的分支叫release分支,大家都把代码合并到release分支,然后测试,发布,之后再把release分支合会master
代码规范、自测和文档
测试阶段
测试金字塔
越底层的测试颗粒度越细,就需要越多的数量去覆盖所有场景,越顶层的测试越能用少量的case覆盖大多数场景。
发布阶段
各种发布模式
蛮力发布
最简单粗暴的
金丝雀发布
滚动发布
蓝绿发布
红黑发布
基于蓝绿发布
发布模式还不止这几种
运维阶段
观察监控和日志
流程怎样优化
从需求到上线全流程自动化,就同时提高了质量和效率。
DevOps
从需求开始,写代码,编译,测试,发布,运维,监控,形成一个闭环。
效率竖井:
全流程自动化
可以把价值流,作为全流程的指标。
三、课后个人总结:
通过本次学习,学习到了一些开发中很重要的知识,就是我们需求上线的整个流程。通过对流程的Why,What,How进行学习,掌握了各个阶段的许多知识。而这些知识,通过思路,可以无疑的减少我们开发时出现的问题。由于我本人没上过软件工程课,第一次接受这样知识,理解仍有偏差和误区且不全面。