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

 

posted @ 2021-04-13 17:26  尘恍若梦  阅读(1039)  评论(0编辑  收藏  举报