web前端教程:nodejs的前后端分离模式

web前端教程:nodejs的前后端分离模式

ID:19312347

大小:20.00 KB

页数:10页

时间:2018-09-30

web前端教程:nodejs的前后端分离模式_第1页
web前端教程:nodejs的前后端分离模式_第2页
web前端教程:nodejs的前后端分离模式_第3页
web前端教程:nodejs的前后端分离模式_第4页
web前端教程:nodejs的前后端分离模式_第5页
资源描述:

《web前端教程:nodejs的前后端分离模式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、web前端教程:nodejs的前后端分离模式1Web前端视频教程http://www.maiziedu.com/course/web/web前端教程:nodejs的前后端分离模式前言为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了前后端的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式。随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验

2、的高要求,我们往往需要针对不同的终端开发定制的版本。为了提升web前端开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本。这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试。讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参与讨论,帮我们完善。一、什么是前后端分离?最开始组内讨论的过程中我发现,每个人对前后端分离的理解不一样,为了保证能在同一个

3、频道讨论,先就什么是前后端分离达成一致。大家一致认同的前后端分离的例子就是SPA(Single-pageapplication),所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的,前端只管展现。从某种意义上来说,SPA确实做到了前后端分离,但这种方式存在两个问题:WEB服务中,SPA类占的比例很少。很多场景下还有同步/同步+异步混合的模式,SPA不能作为一种通用的解决方案。现阶段的SPA开发模式,接口通常是按照展现逻辑来提供的,有时候为了提高效率,后端会帮我们处理一些展现逻辑,这就意味

4、着后端还是涉足了View层的工作,不是真正的前后端分离。SPA式的前后端分离,是从物理层做区分(认为只要是客户端的就是前端,服务器端的就是后端),这种分法已经无法满足我们前后端分离的需求,我们认为从职责上划分才能满足目前我们的使用场景:前端:负责View和Controller层。后端:只负责Model层,业务处理/数据等。为什么去做这种职责的划分,后面会继续探讨。2Web前端视频教程http://www.maiziedu.com/course/web/二、为什么要前后端分离?关于这个问题,玉伯的文章Web研发模

5、式演变中解释得非常全面,我们再大概理一下:2.1现有开发模式的适用场景玉伯提到的几种开发模式,各有各的适用场景,没有哪一种完全取代另外一种。比如后端为主的MVC,做一些同步展现的业务效率很高,但是遇到同步异步结合的页面,与后端开发沟通起来就会比较麻烦。Ajax为主SPA型开发模式,比较适合开发APP类型的场景,但是只适合做APP,因为SEO等问题不好解决,对于很多类型的系统,这种开发方式也过重。2.2前后端职责不清在业务逻辑复杂的系统里,我们最怕维护前后端混杂在一起的代码,因为没有约束,M-V-C每一层都可能出

6、现别的层的代码,日积月累,完全没有维护性可言。虽然前后端分离没办法完全解决这种问题,但是可以大大缓解。因为从物理层次上保证了你不可能这么做。2.3开发效率问题淘宝的Web基本上都是基于MVC框架webx,架构决定了前端只能依赖后端。所以我们的开发模式依然是,前端写好静态demo,后端翻译成VM模版,这种模式的问题就不说了,被吐槽了很久。直接基于后端环境开发也很痛苦,配置安装使用都很麻烦。为了解决这个问题,我们发明了各种工具,比如VMarket,但是前端还是要写VM,而且依赖后端数据,效率依然不高。另外,后端也没

7、法摆脱对展现的强关注,从而专心于业务逻辑层的开发。2.4对前端发挥的局限性能优化如果只在前端做空间非常有限,于是我们经常需要后端合作才能碰撞出火花,但由于后端框架限制,我们很难使用Comet、Bigpipe等技术方案来优化性能。为了解决以上提到的一些问题,我们进行了很多尝试,开发了各种工具,但始终没有太多起色,主要是因为我们只能在后端给我们划分的那一小块空间去发挥。只有真正做到前后端分离,我们才能彻底解决以上问题。三、怎么做前后端分离?3Web前端视频教程http://www.maiziedu.com/cour

8、se/web/怎么做前后端分离,其实第一节中已经有了答案:前端:负责View和Controller层。后端:负责Model层,业务处理/数据等。试想一下,如果前端掌握了Controller,我们可以做urldesign,我们可以根据场景决定在服务端同步渲染,还是根据view层数据输出json数据,我们还可以根据表现层需求很容易的做Bigpipe,Comet,Socket等等,完全是需求

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。