这次课讲得挺不错,内容也门槛低,了解体系很有帮助
什么样的经历才能叫做工作经验?
Why 为什么需要「流程」
团队规模
传统瀑布模型
- 理想化、标准的一个直观流程
- 但是流程定死了,很多时候大家都卡在某个流程
敏捷开发
- 就是因为之前的流程太过于注重于过程本身
- 更注重客户反馈(以人为本)、团队互动(以小团队快速迭代)
- Scrum 两队人争求,共同的目标,象征着理想的合作状态
SAFe
- 现代的 Scrum:多个 Scrum 相互配合
实例
What 有哪些流程
需求阶段
- 不要浪费时间讨论不应该存在的问题
- MVP,最小化可行性产品思想:需要动态收集用户的反馈来迭代产品,而不是到上线了才完成一个可行产品,前面都无反馈
- 爱僧豪威尔矩阵对需求事件的划分
开发阶段
云原生深刻改变了后端开发流程
- VM 容器化:应用和运行时容器同时作为交互产物
- 微服务:
- 其他
- 开发环境也云原生化
团队的分支策略
代码规范
- 注释,三个月一定会忘了自己写的什么
- 硬编码被叫做魔法数字
- 抽象重复逻辑
- 学会使用 IDE 重构
自测 & 文档
测试阶段
测试的阶段
- 越早发现问题测试成本越低
发布阶段
“空难大多数发生因素是由人为检查失误造成的”
- 顺着链路、用 DevTool, curl 等工具去定位问题
发布过程中要做的事情
发布模式
- 蛮力发布:直接覆盖
- 金丝雀发布:探路,但是发现不了大规模问题
- 滚动发布:成本高,用的多
- 蓝绿发布
- 红黑发布
运维阶段
How:流程优化思路
效率 和 质量 的矛盾
融合、自动化
DevOps 解决方案
- 代码管理
- 自动化测试
- CI
- CD
DevOps是一种软件开发和运维的方法论,旨在通过自动化和协作来加速软件开发和部署的过程。它将开发和运维团队紧密结合在一起,以实现更快、更可靠的软件开发和部署。
举个例子,假设一个公司正在开发一个新的软件产品。在传统的软件开发模式下,开发团队会开发软件代码,然后将代码交给运维团队进行部署。但是,在这个过程中可能会出现许多问题,比如开发团队和运维团队之间的沟通不畅、代码部署出现错误等等。
在DevOps模式下,开发和运维团队会紧密合作,共同开发和部署软件。他们会使用自动化工具来加速软件开发和部署的过程,例如使用持续集成和持续交付工具来自动化构建、测试和部署软件。此外,他们还会使用监控和日志工具来实时监控软件的运行状况,以便及时发现和解决问题。
通过使用DevOps方法,开发和运维团队可以更快、更可靠地开发和部署软件,同时也可以更好地协作和沟通。这有助于提高软件开发和部署的效率和质量,从而帮助企业更好地满足客户需求。