先后端分离(一)

参考:https://www.kancloud.cn/kancloud/midway/48192前端

前言node

随着不一样终端的兴起,对开发人员要求愈来愈高,纯浏览器端的响应式已经不能知足需求,咱们须要为不一样版本的的终端开发定制版的网页,传统的开发方式先后端耦合性太大,不能快速的基于前一版本开发其余版本的页面。为了提升开发效率,先后端分离成为了最好的选择方式,前端后端分别负责不一样的方向,前端负责展示和交互,后端负责业务和数据接口,这样能够减小先后端的耦合性,前端后台经过api来交互,这样可使前端用同一套数据接口开发出不一样版本的系统。后端

1、先后端分离概念api

先后端分离是从职责上进行划分,再也不是单纯的物理层划分浏览器

前端:负责view和controller服务器

后端:负责model层,业务处理和数据处理mvc

eg:SPA(single-page application)即为一个先后端分离的例子,前端和后台交互仅经过AJAX的方式交互。可是spa是经过物理层作的区分(认为只要是客户端就是前端,服务器端就是后台)app

  SPA存在问题前后端分离

    1.SPA用的场景较少,不少场景仍是用同步异步混合的方式。异步

    2.现阶段的SPA开发模式,接口由后台提供,可是有时为了提升效率,后端帮前端处理了展示逻辑,意味着后台处理了view层。

    3.SPA方式不利于SEO(搜索引擎搜索)

2、为何要有先后端分离

一、现有开发模式适用场景

1)之后台为主的mvc,作同步展示很方便,可是同步异步相结合的就很麻烦

2)Ajax为主的SPA型,适合app类型场景开发,可是对SEO很不友好。对于稍微简单一些的系统,用这种开发模式过于笨重

二、先后端职责不清

目前先后端职责不是很清楚,没有约束,每一层均可能出现不属于本层的东西,不便于维护。

三、开发效率问题

先后端揉杂在一块儿,对前端后台来讲都是一个很大的负担,前端不能关注到view,要了解不少后台的语言特性,在前端代码中穿插后台代码,后端无法摆脱对展示的强关注,从而专心于逻辑层开发。

四、对前端发挥局限

由于与后台强耦合性,前端只能在很小的空间中发挥做用,无法尝试更新的技术。

3、如何作先后端分离

 

在后台与前端view之间新加一层node来作代理。

一、为何要加node层

1)MVC严重阻碍了前端开发效率,也是后台没法集中于业务,解决方案是让前端来控制controller

2)前端来写controller,若是让前端再学一门后台语言代价太大,node是用js开发

3)前端来代理能够优化请求,合并请求,全部与页面交互的接口本身控制,可以提升前端的开发效率

相关文章
相关标签/搜索