客户端架构设计及应用 | 青训营笔记

99 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第9天

课程笔记

架构面临的问题

只要业务继续发展,越来越复杂就是必然趋势

image.png 理解成本变高

  • 宏大的规模是不好理解的
  • 复杂的结构是不好理解的

预测难度变大

  • 业务变化不可预测
  • 技术变化不可预测

典型的客户端架构

AndroidOS

image.png

IOS

image.png

Flutter

image.png 小结

  • 架构设计是为了解决特定领域不同发展阶段的业务问题
  • 不同领域的架构有明显的技术差异,但也有很多相似性
  • 架构不仅面临技术挑战,还要应对组织业务膨胀的熵增
  • 移动端需要利用有限的设备资源设计符合小屏幕的架构

常见的架构手段

GoF设计模式

MVC

MVP

MVVM

image.png 小结

  1. 不同架构手段的共同目标是高内聚低耦合
  2. 找到适合业务场景的架构而不是炫技滥用
  3. 一个复杂的系统是多种架构模型的组合体

架构演进

  1. 架构随业务发展由简单变得复杂是规律
  2. 没必要最初用复杂架构来解决简单问题
  3. 需要用规范持续重构来对抗代码的腐朽

成为优秀架构师

定义问题->确定架构->方案落地->结果复盘

image.png

image.png

image.png

课后总结与思考

你了解的架构是怎样的?

没有完美的架构,需要对架构实习不断改进更新

你觉得每天架构师都在干什么?

根据用户需求,讨论如何设计软件

每天都在填坑

认清问题

亨利福特说,如果我问客户需要什么,他们会告诉我,他们需要一匹更快的马。从亨利福特的这句话,我们可以提炼出一个最直接的问题:客户需要一匹更快的马。立足这个问题本身去找解决方案,可能永远交不出满意的答卷:寻找更好的品种,更科学的训马方式。

思考问题背后的问题,为什么客户需要一匹更快的马?可 能客户想要更快的日常交通方式,上升了一个层次后,我 们立刻找到了更好的解决方案:造车。

我们不能只局限于问题本身,还需要看到问题背后的问题, 然后才能更容易找到更多的解决方案。