当准备做前后端分离时,我们在考虑什么?

Posted 前端之巅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当准备做前后端分离时,我们在考虑什么?相关的知识,希望对你有一定的参考价值。

随着这几年互联网行业呈井喷式增长,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,往往工程师们不得不针对不同的终端来定制新的版本,为了提高开发效率,前后端分离的需求越来越被重视。

在远古互联网时代,可以说 web1.0 时代,根本是不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、php 等工程师在服务端生成,浏览器负责展现,后来逐渐发展到后端主导的 MVC 的模式,相信如果是做 Java 的同学一定不会陌生,Model、View、Controller 基本上是每个后端开发人员必知的。

再后来随着大前端的崛起,出现了由前端主导的 SPA 模式,以及 Node 带来的全栈时代,下面我们就分别介绍 SPA 和 Node.js 这两种前后端分离模式都有哪些优缺点。

SPA

SPA 全称是 Single Page Application,使用前端路由的方式代替后端的 controller,并使用前端模板代替后端的模板引擎渲染,使用 restful api 实现与后端的数据交互。在这个方案中,前后端的交互被转换成了纯粹的 http 方式的 JSON 串交互。

 优势
  • 后端可以专注于业务逻辑,前端对页面有完全的掌控。也就是说所有用到的展现数据都是后端通过异步接口(AJAX/JSONP)的方式提供的;

  • 前端可以独立开发,后端返回纯 JSON ,前端想要模拟请求响应的话,只需启动一个纯静态的服务器,响应 JSON 格式的 html 即可;

  • 用户体验更好

 劣势
  • SPA 需要前端处理很多业务层的数据,增大了复杂度

  • 首屏加载慢,等所有 js 加载完才能出首屏

  • SPA 的页面完全由前端 javascript 渲染,无法有效地被搜索引擎抓取

基于 Node.js

虽然 SPA 解决了很多的问题,但依旧有很多不足之处,随着 Node.js 的兴起,JavaScript 开始有能力运行在服务端。它利用了谷歌的 V8 JavaScript 引擎,使得在服务器端运行 JavaScript 成为可能,这意味着可以有一种新的研发模式。

利用 Node.js 实现前后端分离的核心是使用 Nodejs 搭建一个中间层,负责和后端的数据交流以及前端的页面渲染,可以有效实现前后端的解耦。前端可以更加专注于视图层,而让更多的数据逻辑放在 Node 层处理。

 优势
  • 分工明确,后端服务化,Node.js 层处理接口用户相关的页面响应及数据交换;

  • 可组合性,后端服务化,Node.js 负责组合拼装,实现接口可复用率;

  • SEO 的场景可以在服务端同步渲染,完美解决了 SPA 在这方面的缺陷。

当准备做前后端分离时,我们在考虑什么?

随着前端的丰富,前后端分离已经是必然的一个趋势。各种东西如雨后春笋一般,层出不穷。而 node.js 的出现,是前端真正意义上变成了大前端。回首 node.js 这门语言的发展,起初作为一门后端语言,但是无心插柳的成为了前端工程师提高效率的工具,成为大前端发展的基石。

在大前端的趋势下,无论你是后端工程师,亦或是前端工程师,前后端分离都是一个永远绕不过去的问题。大前端与系统开发,在业务上一直相辅相成,越来越多的前端工程师也在了解后端的系统开发。

应对海量的数据流量以及访问,保持系统的高可用性以及高性能是现在的系统第一需要面对的问题。

基于此,12 月 9-10 日,在北京举办的 ArchSummit 全球架构师峰会 - 深度培训上, 来自 LinkedIn 的薛君凯老师及京东物流部架构师王宝令老师,将分别为大家带来快速构建高效分布式应用、及基于 OpenResty 的高性能网关核心设计。

大会【深度培训系列】为极客邦企业培训与咨询部特设服务项目。2 天闭门会议,小班实战,高效深度学习,一线大咖,零距离交流,解决技术痛点,研讨避坑指南。

当准备做前后端分离时,我们在考虑什么?深度培训火爆现场-学员讲师互动答疑


深度培训火爆现场-实战演习

以上是关于当准备做前后端分离时,我们在考虑什么?的主要内容,如果未能解决你的问题,请参考以下文章

我们为什么要尝试前后端分离

我们为什么要尝试前后端分离

前后端要不要分离以及如何做

什么是前后端分离?为什么分离

不懂前后端分离?这篇就够

如何进行前后端分离