前后端分离架构( 三 )


2、响应速度提升;我们有时候,会遇到后端返回给前端的数据太简单了,前端需要对这些数据进行逻辑运算 。那么在数据量比较小的时候,对其做运算分组等操作,并无影响 。但是当数据量大的时候,会有明显的卡顿效果 。这时候,node中间层其实可以将很多这样的代码放入node层处理、也可以替后端分担一些简单的逻辑、又可以用模板引擎自己掌握前台的输出 。这样做灵活度、响应度都大大提升 。
3、性能得到提升;大家应该都知道单一职责原则 。从该角度来看,我们,请求一个页面,可能要响应很多个后端接口,请求变多了,自然速度就变慢了,这种现象在mobile端更加严重 。采用node作为中间层,将页面所需要的多个后端数据,直接在内网阶段就拼装好,再统一返回给前端,会得到更好的性能 。
4、异步与模板统一;淘宝首页就是被几十个HTML片段(每个片段一个文件)拼装成,之前php同步include这几十个片段,一定是串行的,Node可以异步,读文件可以并行,一旦这些片段中也包含业务逻辑,异步的优势就很明显了,真正做到哪个文件先渲染完就先输出显示 。
前端机的文件系统越复杂,页面的组成片段越多,这种异步的提速效果就越明显 。前后端模板统一在无线领域很有用,PC页面和WIFI场景下的页面适合前端渲染(后端数据Ajax到前端),2G、3G弱网络环境适合后端渲染(数据随页面吐给前端),所以同样的模板,在不同的条件下走不同的渲染渠道,模板只需一次开发 。
增加NodeJS中间层后的前后端职责划分:

前后端分离架构

文章插图
 
5、总结从经典的JSP+Servlet+JavaBean的MVC时代,到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架时代,再到前端框架(KnockoutJS、AngularJS、vueJS、ReactJS)为主的MV*时代,然后是Nodejs引领的全栈时代,技术和架构一直都在进步 。虽然“基于NodeJS的全栈式开发”模式很让人兴奋,但是把基于Node的全栈开发变成一个稳定,让大家都能接受的东西还有很多路要走 。
创新之路不会止步,无论是前后端分离模式还是其他模式,都是为了更方便得解决需求,但它们都只是一个“中转站” 。前端项目与后端项目是两个项目,放在两个不同的服务器,需要独立部署,两个不同的工程,两个不同的代码库,不同的开发人员 。前端只需要关注页面的样式与动态数据的解析及渲染,而后端专注于具体业务逻辑 。(来源:互联网架构师 )

【前后端分离架构】


推荐阅读