这是我参与「第四届青训营 」笔记创作活动的第9天
课程笔记
架构面临的问题
只要业务继续发展,越来越复杂就是必然趋势
理解成本变高
- 宏大的规模是不好理解的
- 复杂的结构是不好理解的
预测难度变大
- 业务变化不可预测
- 技术变化不可预测
典型的客户端架构
AndroidOS
IOS
Flutter
小结
- 架构设计是为了解决特定领域不同发展阶段的业务问题
- 不同领域的架构有明显的技术差异,但也有很多相似性
- 架构不仅面临技术挑战,还要应对组织业务膨胀的熵增
- 移动端需要利用有限的设备资源设计符合小屏幕的架构
常见的架构手段
GoF设计模式
MVC
MVP
MVVM
小结
- 不同架构手段的共同目标是高内聚低耦合
- 找到适合业务场景的架构而不是炫技滥用
- 一个复杂的系统是多种架构模型的组合体
架构演进
- 架构随业务发展由简单变得复杂是规律
- 没必要最初用复杂架构来解决简单问题
- 需要用规范持续重构来对抗代码的腐朽
成为优秀架构师
定义问题->确定架构->方案落地->结果复盘
课后总结与思考
你了解的架构是怎样的?
没有完美的架构,需要对架构实习不断改进更新
你觉得每天架构师都在干什么?
根据用户需求,讨论如何设计软件
每天都在填坑
认清问题
亨利福特说,如果我问客户需要什么,他们会告诉我,他们需要一匹更快的马。从亨利福特的这句话,我们可以提炼出一个最直接的问题:客户需要一匹更快的马。立足这个问题本身去找解决方案,可能永远交不出满意的答卷:寻找更好的品种,更科学的训马方式。
思考问题背后的问题,为什么客户需要一匹更快的马?可 能客户想要更快的日常交通方式,上升了一个层次后,我 们立刻找到了更好的解决方案:造车。
我们不能只局限于问题本身,还需要看到问题背后的问题, 然后才能更容易找到更多的解决方案。