教学目标
- 理解架构设计复杂度模型
- 理解可扩展架构的复杂度本质
- 掌握可扩展架构的“拆分”和“封装”手段
鸡蛋篮子第一法则:如果一个篮子数不清,拆分到多个篮子再数!
目录
- 架构设计复杂度模型
- 可扩展复杂度模型
- “拆分”复杂度分析和设计
- “封装”复杂度分析和设计
1 架构设计复杂度模型
架构设计复杂度模型
架构复杂度应对之道
架构设计环
2 可扩展复杂度模型
可扩展定义
可扩展复杂度模型
3 可扩展架构设计- 拆分
鸡蛋篮子理论第一法则 - 拆分法则
拆分复杂度模型
拆分粒度 - 两个复杂度
拆分粒度 - 平衡的艺术
拆分粒度不合理的案例 - UC用户中心
4 可扩展架构设计 - 封装
封装复杂度模型
预测的艺术
封装的技巧
封装案例 - 美团MazeGO规则引擎
封装案例 - OSGi微内核
封装案例 - Linux VFS抽象层
封装案例 - 设计模式
本节思维导图
随堂测验
【判断题】
- 如果需求只是写个“hello world”,肯定不需要什么架构设计
- 可扩展既可以是指支持修改的能力,也可以是添加资源提升性能的能力
- 架构设计的时候,单个子系统越简单越好
- 拆分的时候可以先粗粒度拆,后面再按照演化原则继续拆
- 预测的时候尽量目光放长远一些,这样可以设计更有前瞻性的系统
【思考题】
微信和支付宝复杂度对比,哪个更复杂,为什么?