zoukankan      html  css  js  c++  java
  • App 架构

    一、App架构

    趋于组件化和容器化架构。

    其基本思想都是将超级 App 拆分为众多组件,这些组件遵循预先制定好的规范,独立开发、独立测试、独立上线。

    如果某个组件依赖其他组件,组件之间通过消息系统进行通信,通过这种方式来实现组件隔离,从而避免各个团队之间的互相依赖和影响,以提升团队开发效率和整个系统的可扩展性。

    组件化采用的是静态发布,即所有的组件各自独自开发测试,然后跟随 App 的某个版本统一上线;

    容器化采用的是动态发布,即容器可以动态加载组件,组件准备好了直接发布,容器会动态更新组件,无需等待某个版本才能上线。


    Android: Atlas,XPlugin——Android消息化框架

    微信Android客户端架构演进之路

    Atlas:手淘 Native 容器化框架和思考

    二、Hybird App

    ReactNative、Flutter、Weex

    三、 MVC 、MVP、MVVM 、VIPER

    参考:

    https://draveness.me/mvx/

    https://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html

    MVC  Model-View-Controller(模型-视图-控制器)

     

    控制器负责对模型中的数据进行更新,而视图向模型中请求数据;

    当有用户的行为触发操作时,会有控制器更新模型,并通知视图进行更新。

    MVP:

    1. 各部分之间的通信,都是双向的。

    2. View 与 Model 不发生联系,都通过 Presenter 传递。

    3. View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

     MVVM:

    MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。

    唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel。

    VIPER:

    Architecting iOS Apps with VIPER

    View-Interactor-Presenter-Entity-Router。

    相比之前的MVX架构,VIPER多出了两个东西:Interactor(交互器)和Router(路由)。

     和MVP中负责业务逻辑的Presenter不同,VIPER的Presenter的主要工作是在View和Interactor之间传递事件,并管理一些View的展示逻辑,主要的业务逻辑实现代码都放在了Interactor里。

    Interactor的设计里提出了”用例”的概念,也就是把每一个会出现的业务流程封装好,这样可测试性会大大提高。而Router则进一步解决了不同模块之间的耦合。

    VIPER也符合“单一责任原则”。Interactor对业务分析师负责,Presenter代表交互设计师,而View对视觉设计师负责。

     

    淘宝架构演进——> 淘宝技术发展

    https://wenku.baidu.com/view/b0bb034369eae009581becb9.html

  • 相关阅读:
    Java修饰符
    java中接口的定义
    抽象类
    final关键字的特点
    hdu6489 2018 黑龙江省大学生程序设计竞赛j题
    POJ 3268 (dijkstra变形)
    poj 2253 floyd最短路
    poj1681 Network
    bzoj1202 狡猾的商人
    Nastya Is Buying Lunch
  • 原文地址:https://www.cnblogs.com/developer-qin/p/14654311.html
Copyright © 2011-2022 走看看