这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
1、后端开发流程
复杂项目没有流程会有什么问题:
√需求阶段:每个人都有自己的想法,团队决策需要有一个过程
√开发阶段:多人/多端协作开发,每个人有自己的安排,相互配合需要有一个流程
√测试阶段:产物怎样交付,测试如何开展,BUG怎么修都需要流程
√发布阶段:怎样确保发布过程平稳丝滑,版本和流量如何控制,需要有规范
√运维阶段:线上问题如何应急响应,处理用户反馈和线上问题需要有流程
1.3敏捷开发
2、架构定义
-
架构,又称软件架构
-
是有关软件整体结构与组件的抽象描述
-
用于指导软件系统各个方面的设计
实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用 架构的重要性地基没打好,大厦容易倒地基坚实了,大厦才能盖得高站在巨人肩膀上,才能看得远
2.1 单机架构
软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上
如何卖更多蛋糕?
2.2 单体 垂直应用
- 单体架构:分布式部署
- 垂直应用架构:按应用垂直切分的单体
- 优点:水平扩容运维不需要停服
- 问题:职责太多,开发效率不高爆炸半径大
2.3 SOA 微服务|水平切分
SOA(Service-Oriented Architecture)
将应用的不同功能单元抽象为服务1.
定义服务之间的通信标准微服务架构:SOA 的去中心化演进方向
问题:
- 数据一致性
- 装货台共交付了多少蛋糕?高可用
- 这么多师傅,如何合作?治理
- 烤箱坏了,怎么容灾?解耦 vs 过微
- 运维成本高了,值当么?