移动客户端

谈谈MVC与微信

拜拜、爱过 提交于 2019-12-02 14:50:46
最近被问到一个问题,"用mvc谈谈微信的架构设计",下面是我的总结 1、对MVC的理解 mvc指的是模型(M—Module),视图(View),控制器(Control)。一般情况下,M指一个项目的存储结构,存储数据模型以及业务业务数据模型,V指的是用户与系统的交互接口,也叫做表现层,这里对用户体验考虑较多,C代表用户从视图接口接入的真正功能,掌管业务功能的变现,也叫逻辑层,三个层次间用接口定义交互边界,用工厂产生具体的实现,可以有效地减少耦合,提高迭代效率和开发效率等。 2、从MVC视角看微信 用mvc的视角看待微信这个项目,可以用mvc对微信做一个大概的分级,其中可以将微信客户端整个看成一个v层,微信服务器由M,C结合。 3、从MVC视角浅谈微信 考虑到微信客户端变更成本过高的问题,将逻辑重心放到服务器,即服务器处理数据的流入流出和对客户端提供接口,客户端主要负责展示效果。服务器在不能有效优化的阶段前提下,可以将不是服务器必要的具体实现逻辑交由客户端实现,避免服务器增加重复判断(例如:服务器对android、ios、wp客户端的各种消息统一协议,具体消息的处理交由客户端识别处理)。客户端可以使用混合编程,即一部分使用java原生代码,一部分通过webview的衍生使用网页展现,可以减少客户端的开发实现和更新成本,忽略必要的质量监控逻辑和容灾逻辑以及必要的版本区分逻辑