架构 组件化 插件化 热更新 图 UML

974 阅读4分钟

文章

待看的文章

UML图

plantUML Android Studio绘制UML图插件及使用方法

流程图

时序图

IPO图

  • IPO 图(也叫输入输出图)
  • 定义:
    • 在计算机领域IPO是指结构化设计中变换型结构的输入(Input)、加工(Processing)、输出(Output)。
    • IPO图是对每个模块进行详细设计的工具,它是输入加工输出(INPUT PROCESS OUTPUT)图的简称。IPO图就是用来说明每个模块的输入、输出数据和数据加工的重要工具
  • 基本元素:
    • 可根据系统流程图中基本元素看,包括输入,处理,输出。
  • 示例

移动架构

组件间通信

大厂移动架构演进

移动架构演进

零散的点

  1. 一般情况,移动端架构设计不需要考虑 高并发,负载均衡,容灾. 这属于后端架构设计的内容.
  2. 移动端架构内容
    1. MVC,MVP,MVVM选型 + 模块化开发
    2. 技术架构
      • 最底层是基础框架层
        • 网络,存储,图片加载,日志等
      • 中间层是上层业务经过抽象形成的公共业务层,也叫中台
        • 账号,支付,客服,地图等
      • 最上层是核心业务层
    3. 总体来看, 移动端架构 = 业务架构(模块化) + 技术架构(分层)
  3. 架构设计的目标
    • 解决当前项目的痛点,降低当前项目的复杂度.
  4. 架构设计的原则
    • 合适最重要,首先要解决当下问题
    • 尽量简单
    • 适时演化,不要幻想一步到位
  5. App架构的演进
    1. Web App
      • WebView加载1个网页.
      • 快速,低成本
    2. 原生App
      • 用户体验最好
    3. 混合开发
      • Android,IOS,WINDOWS PHONE 3个平台都用原生开发成本太高
      • 对用户体验要求高的界面原生开发,要求不高的加载网页
    4. 组件化 和 容器化
      • APP越来越巨大,1个淘宝包含非常多的子业务,如 天猫,聚划算,天猫超市,饿了么** 等等
      • 将每个业务拆分为1个模块/组件.
      • 组件/模块间通过消息系统进行通信,组件之间实现隔离.
      • 组件化和容器化的差别
        • 组件化采用静态发布,所有组件各自独立开发测试,跟随某个APP版本统一上线.
        • 容器化采用动态发布,单个组件开发完成直接发布,容器会动态更新,无需随APP版本统一发布.
    5. 跨平台
      • Flutter
      • React Native
  6. Android APP 架构不断升级过程
    1. 抽取公共库
    2. 抽取独立业务moudle
    3. 各moudle间避免依赖,使用路由实现模块间通信
    4. 采用多进程
      • 需要解决多进程下,路由失效问题.