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

128 阅读2分钟

关键词:架构理论和模型的概述

这是我参与「第四届青训营 」笔记创作活动的第15天。本文主要对架构,包括架构的演进更替、分类、优缺点进行学习与梳理。

常见的架构手段

架构演进:描述一个产品在生命周期的不同阶段,架构如何变化。

问题

image.png

不同产品阶段 image.png

不同端的差异

image.png

安卓客户端架构

image.png

典型的客户端架构Flutter

image.png

手段

image.png

标准的架构模式有多少种?三种

image.png JAVA虚拟机中,B是最好的选择

  • A会被打断,在部分虚拟机上会跑错。
  • B用了volatotle关键词,保证CPU到内存的同步
  • B与C哪一个更优,得看设计场景

MVC视图控制器的模型

image.png

image.png

数据和视图要解耦,数据庞大,不适合大数据

MVP

image.png P是表现层

当数据有更新时,通过表现层去更新模型的 image.png 按钮的响应不是直接调用模型的,通过表现层的present去调用模型的累加器。数据更新以后,要根据表现层再去更新UI。

MVVM

image.png

MVC、MVP、MVVM

image.png

编程思想 OOP、AOP

AOP切面,所有人都要吃饭 image.png

image.png

(常用)控制翻转IoC

  1. 直接依赖

image.png 2. 依赖翻转在于 - 将B、C、Z注入控制反转IoC容器,它是一个对象,托管了BCZ对象的生命周期 - 翻转体现在不是A主动控制IoC中的,而是IoC主动去注入到A对象中去的。

image.png

例子

实例SPI(IoP的例子):

image.png

小结:

image.png

大的业务架构

  1. 分层架构 image.png 优点:
  • 结构简单清晰,易于理解和管控
  • 层级关系适合不同技能人员分工 缺点:
  • 对层级管控要求严格,灵活性低
  • 为了解耦容易拆分出很多中间层(最开始3、4层,后来几百层)
  1. 服务化架构

image.png 3. 事件驱动架构

image.png

image.png

哪一些机制可以互通信息:广播、handle

  1. 微内核

image.png

image.png

  1. 领域驱动(微服务) 分开去解决特定问题

负载均衡

image.png

  1. 减缓衰老

image.png

重点

image.png

例子

![image.png](p6-juejin.byteimg.com/tos-cn-i-k3… 04dd9ac745256~tplv-k3u1fbpfcp-watermark.image?)

重点

image.png

如何成为优秀架构师

顺序:定义问题 确定架构 方案落地 结果复盘

分类 image.png 分级

image.png 热更新与插件一起用?分为什么级别等等?

浅追求

image.png

架构总结