New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何简单区分Web前后端与MVC #3

Open
calidion opened this Issue Feb 1, 2016 · 5 comments

Comments

Projects
None yet
5 participants
@calidion
Owner

calidion commented Feb 1, 2016

经常看到很多人将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请求路由 搜索引擎 数据分析 文件服务
@calidion

This comment has been minimized.

Show comment
Hide comment
@calidion

calidion Mar 28, 2016

Owner

nodejs

图片告诉你如何区分前后端。

Owner

calidion commented Mar 28, 2016

nodejs

图片告诉你如何区分前后端。

@soakit

This comment has been minimized.

Show comment
Hide comment
@soakit

soakit Mar 31, 2016

豁然开朗!

soakit commented Mar 31, 2016

豁然开朗!

@wuyue226

This comment has been minimized.

Show comment
Hide comment
@wuyue226

wuyue226 Sep 1, 2016

受教了

wuyue226 commented Sep 1, 2016

受教了

@startheart

This comment has been minimized.

Show comment
Hide comment
@startheart

startheart commented Apr 5, 2017

👍

@DeepMissea

This comment has been minimized.

Show comment
Hide comment
@DeepMissea

DeepMissea Jun 15, 2017

偶然发现的,很清晰

DeepMissea commented Jun 15, 2017

偶然发现的,很清晰

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment