安安股票网-股票知识,A股吧网,炒股入门知识,股票资讯网-分离 如何正确理解前后端分离?

分离 如何正确理解前后端分离?

发布时间:2020-07-07 09:02:42 来源:分离点击 :

关于前端、后端以及前后端分离的特点等,我将采用 “问答体” 的方式来谈谈我的理解,希望可以回答“如何正确理解前后端分离”这个问题。

问题一:什么是前端、什么是后端?前台、后台是指前端、后端吗?

首先,前端、后端是指人,即工程师,衍生出来是指前后端工程师的工作内容。前端开发人员称为 Web 开发者,流行的叫法叫做“大前端”。

前台,是用户直接能看到的页面,所有人都可以访问。后台是有权限的运营人员或用户登录授权后看到的页面,相关权限人员还可以修改相应的配置,改变显示给前台用户看的内容。

后端的发展先于前端,参考阿里圆心在 GMTC 大会上的演讲《前端路上的思考》,前端发展史有五个阶段

  • 第一阶段:2003年,讲求所有的 HTML、CSS、JS 是我们所谓结构样式行为的分离,这个理论造就了今天前端主体。
  • 第二阶段:2008 年,当时有一个理念认为 90% 的性能优化都在前端。在前台体系里面,这个理论让前端价值得到进一步体现。这个阶段也是工程化的开启:Ant 前端工具,到今天有 GRUNT、Webpack、Babel 等。
  • 第三阶段:2013年,前后端的分层促进了对于前端体系的发展:Node.js 从工程工具的开发到应用的开发,以及 BFF 体系的发展等。
  • 第四阶段:移动时代的来临,改变了今天整个 PC 和无线的格局,也改变了我们前端大部分人开发的方式。一开始理论是 Mobile first,后面是 Write Once,Run anywhere。
  • 第五阶段:是低代码对于整个体系影响,有一个背景就是互联网下的风口,所有的企业都看 to B 的体系。在前端的体系里面把 to B 看成是中后台,核心理念:Low/No Code,今天很多公司提供这样的解决方案,比如如今微软的 PowerApps,大家在这个领域在做新的探索。

问题二:前后端分离有哪些优点和缺点?

优点:

  • 本质是前后端职责分明
  • PC、App、Pad 多端适应
  • 单页面模式(SPA)趋势
  • 开发效率提高,前后端可以同步开发,协作顺畅性提高
  • 低耦合
  • 精准的单元测试
  • 精准的 bug 定位和修复
  • 相对于开发人员,维护成本降低

缺点:

  • 前后端学习门槛提高,专业性增强,术业有专攻
  • 前端工作量会相对以前的开发模式增大
  • 不利于 SEO(搜索引擎优化)
  • 出现跨域问题

问题三:你真的需要前后端分离吗?

首先要清楚前端后端的两种协作方式,一种可以称之为是服务器端渲染,一种是叫做前后端分离。

服务器渲染

指网页直接在服务端生成,浏览器拿到的是一整个网页,CSS 和 JS 的部分是在浏览器端执行的,网页的内容也是由服务器端生成的。

前后端分离

指网页是在浏览器端生成的,内容是通过接口(API)交互的方式从后端拿到的纯数据。

它们的区别

最大的区别是,HTML 是在哪儿生成的,浏览器和服务端传递的是什么。

在前后端分离的方式,浏览器和服务端传递的是内容,在服务端渲染的过程中,传递的是 HTML 网页。

不同维度比较

  1. 传输量:前后端分离,传输量会减少;服务端渲染,传输量大,内容会有大量冗余。
  2. 渲染:前后端分离,多了渲染数据的过程;服务端渲染,首屏渲染性能低。
  3. 展示:前后端分离,数据展示由前端处理,后端只提供内容;服务端渲染,传输的是 HTML。
  4. 动作:前后端分离,页面交互是由前端来决定;服务端渲染,大部分是后端,极少部分由前端完成。
  5. SEO:前后端分离,架构搭建采取 SPA 方式,不利于 SEO;服务器端渲染,生成的是网页,所以对 SEO 支持友好

总结

利弊权衡,取其利。


问题四:前后端分离的最佳实践是什么?

分离业务,分离开发,分离部署,前后端之间用 HTTP(S) 的 JSON 格式通信,做到松耦合。

后台只需以 REST 或 GraphQL 的 API 向前端提供服务,要解决 SEO 以及首屏渲染问题需要加上 Node.js。

最后,希望这四个问题的解释,能够回答“如何正确理解前后端分离”这个问题。

编辑 | blue

更多回复:

知乎网友信鑫-King:

个人拙见:

一、第一阶段

MVC,前后端融合在一起开发。

缺点是:协作效率可能受影响

二、第二阶段

前端MVV*框架(React、Vue、Angular)+ 后端REST API + 后端提供入口 ,SPA前后端分离。

缺点是:SEO问题

三、第三阶段

前端MVV*框架(React、Vue、Angular)+ Node.js + 后端 REST API ,同构应用,解决SEO问题。

缺点是:node层服务端渲染容易造成内存泄露

四、第四阶段

可能没有前后端之分,就叫Web开发,前后各有侧重,大家在一起开发。


知乎网友千锋HTML5学院:

你理解的前后端分离并没有问题。

而且你所说的后台管理不分离

是仅仅跟后端服务部署在一起? 还是开发也没有分开? 例如像JSP这样的动态页面?

如果只是部署在一起,那没什么好奇怪的

把后台管理页面跟前台页面部署在一起,那才奇怪呢


如果开发上也不分离,那显然后台管理,是后端程序员全包了呀

因为后台管理通常对用户体验要求不高,也没有设计

随便拿个UI框架都可以使,服务端开发人员完全可以自己搞定

因此叫前后端分离也没啥毛病


知乎网友知乎用户:

后端写服务,前端用react或者vue,用nginx做前端服务器,通过nginx转发请求到后端。


知乎网友知乎用户:

后端写服务,前端用react或者vue,用nginx做前端服务器,通过nginx转发请求到后端。


知乎网友ccloomi:
如果页面的渲染是在后台完成的这个属于前后台不分离,如果页面是在客户端通过js渲染出来的这就是前后端分离,这样的好处就是将页面渲染的任务交给了客户端并大大降低了服务器的压力,可以让服务器专注在数据处理,而前端只需要关心取数据并渲染成页面。如果不分离,前端写好的页面还需要后台程序员转换成jsp或模版文件才能使用。


https://www.aguba.net/gupiao/28614.html
猜你喜欢
本月排行