长文观点丨为什么我不再使用MVC框架

北京治疗白癜风最好的药 http://pf.39.net/bdfyy/bdfjc/141127/4525477.html
“Jan-JacqusDubray是一名资深工程师,他最近引入了一个新的模式:状态-行为-模型(Stat-Action-Modl,SAM)。SAM是一个函数式反应型的编程模式,它致力于简化数据Modl和Viw之间的交互。它究竟有何优点值得作者弃用MVC呢?话题起因

在我最近的工作中,最让人抓狂的就是为前端开发人员设计API。我们之间的对话大致就是这样的:

开发人员:这个页面上有数据元素x,y,z…,你能不能为我创建一个API,响应格式为{x:,y:,z:}

我:好吧

我甚至没有进行进一步的争论。项目结束时会积累大量的API,这些API与经常发生变化的页面是关联在一起的,按照“设计”,只要页面改变,相应的API也要随之变化,而在此之前,我们甚至对此毫不知情,最终,由于形成因素众多且各平台之间存在些许差异,必须创建非常多的API来满足这些需求。

SamNwman甚至将这种制度化的过程称之为BFF模式,这种模式建议为每种设备、平台当然还包含APP版本开发特定的API。DanilJacobson在接受InfoQ的采访时曾指出,Ntflix颇为勉强地将“体验式API”与“临时API(EphmralAPI)”划上了等号。唉……

几个月前,我开始思考是什么造成了如今的这种现象,该做些什么来应对它,这个过程使我开始质疑应用架构中最强大的理念,也就是MVC,我感受到了函数式反应型编程(ractiv)的强大威力,这个过程致力于流程的简化,并试图消除我们这个行业在生产率方面的膨胀情绪。我相信你会对我的发现感兴趣的。

MVC的辉煌过去与现存问题

在每个用户界面背后,我们都在使用MVC模式,也就是模型-视图-控制器(Modl-Viw-Controllr)。MVC发明的时候,Wb尚不存在,当时的软件架构充其量是胖客户端在原始网络中直接与单一数据库会话。但是,几十年之后,MVC依然在使用,持续地用于OmniChannl应用的构建。

Angular2正式版即将发布,在这个时间节点重估MVC模式及各种MVC框架为应用架构带来的贡献意义重大。

我第一次接触到MVC是在年,当时NXT刚刚发布IntrfacBuildr(让人惊讶的是,如今这款软件依然发挥着重大的作用)。当时,我们感觉IntrfacBuildr和MVC是一个很大的进步。在90年代末期,MVC模式用到了HTTP上的任务中(还记得Struts吗?),如今,就各个方面来讲,MVC是所有应用架构的基本原则。

MVC的影响十分深远,以致于Ract.js在介绍他们的框架时都委婉地与其划清界限:“Ract实现的只是MVC中视图(Viw)的部分”。

当我去年开始使用Ract的时候,我感觉它在某些地方有着明显的不同:你在某个地方修改一部分数据,不需要显式地与Viw和Modl进行交互,整个UI就能瞬间发生变化(不仅仅是域和表格中的值)。这也就是说,我很快就对Ract的编程模型感到了失望,在这方面,我显然并不孤独。我分享一下AndrMdiros的观点:

Ract在很多方面都让我感到失望,它主要是通过设计不佳的API来引导程序员[…]将多项


转载请注明:http://www.aierlanlan.com/tzrz/362.html