如何简单区分Web前后端与MVC(有感于概念混乱之严重)
发布于 2 个月前 作者 calidion 398 次浏览 来自 分享

原文: https://github.com/calidion/calidion.github.io/issues/3

经常看到很多人将Web前后端与MVC混为一谈。 我在这里简单将这两个内容在Web开发上做一个简单的区分。

MVC是开发所有软件所必须涉及的基本几个划分

M主要负责数据与模型, V主要负责显示 C主要负责交互与业务 所以不管是前端还是后端,都是有MVC的。 MVC是一个对于软件简单的抽象,不管是M还是V,还是C都是有很多细分的。 所以理解MVC是一种业务抽象是非常重要的。

前端MVC

前端流行的MVVM就是对于前端MVC结构的一次重新定义。 特别是angular这样的框架出来后,前端的MVC就非常完善了。 再加上SPA与混合APP的流行,MVC在前端就是一个完整的体系。 同理后端一样是有MVC的。

后端MVC

基本上所有的后端框架都是声称支持MVC的。所以相对于前端来讲,后端的MVC是更加清楚的。 后端的 M主要是指数据库,文件等 V主要是指包括HTML模板,HTML的组装,其它的动态UI显示技术 C是一样的,但是一般的象HTTP请求都包括了路由请求,很多HTTP模式化的业务都抽象成了对应的专用软件,比如web server, session 服务器, 队列。C当然包括业务逻辑。而业务逻辑本身就有很多种。包括搜索引擎,机器学习等,都可以归于业务逻辑。

但是很可惜的是,最近因为前端技术的飞速发展,导致很多人又开始概念不清了。 将Web前端与服务器View混为一谈,将服务器前后端与Web前后端混为一谈。

前端一般是我们对Web前端简称,并非是对所有的东西的简单称。 但是前端本身是一个可以非常广泛的概念,只要是东西必定是有前后端的。一支笔还有前后端。 你非要将服务器(通常所说的后端技术)前端也称为前端,然后与Web前端混淆,我相信你只是在耍流氓。 所以我不太建议后端开发体系中非要再搞一个所谓的服务器前端。

下面简单将前后端与MVC作个归纳:

前端 后端
M json xml html数据 等 数据库 文件 等
V 模板引擎 模板片段等 HTML模板
C JS 业务逻辑 HTTP请求交互(AJAX, JSONP, WEBSOCKET) HTTP请求路由 搜索引擎 数据分析 文件服务
2 回复

赞,再说node是前端的人我要翻脸了,我怕翻过来会吓死你们~

@mzTeamMeatMan 哈哈。 前后端本来是很清楚的, 但是不知道为什么老发现有人搞不清楚。

回到顶部