谈谈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的衍生使用网页展现,可以减少客户端的开发实现和更新成本,忽略必要的质量监控逻辑和容灾逻辑以及必要的版本区分逻辑,这一部分代表整个项目的V层。


4、MVC是什么

真正开发一个微信所要控制的边界会更加严格,对客户端、服务器也会根据具体的业务要求进行进一步的划分和拓展,如客户端可以划分为mvp模式,对每一个功能界面提供一个更具体的服务,服务器也可以对具体功能划分更多的层次,对具体的由网页实现的业务划分成mvvm模式等,微信的版本更迭速度是很快的,那么微信必有极快的业务迭代实现能力,其每一个层次,每一个功能必然是有较高的拓展能力和较强的边界规范,对每个功能进行分而治之的思想,这也是MVC模式的思想所在。所以,从微信看来,MVC就是一种约束、拓展、分而治之的思想,MVC不适用所有的项目开发,但其思想是对所有项目有益的。我觉得这就是MVC在当今业界所存在的意义,微信不会使用固定的几种开发模式,其项目结构的成立和演变,必然是从其产品的重心以及相关业务产生的,但不管是什么样的项目,什么样的模式,MVC的思想—约束、拓展、分而治之一定是应用其中的。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!