你真的懂前后端分离吗?
2023-3-31 16:57:6 Author: 寰宇卫士(查看原文) 阅读量:40 收藏

到底什么是前后端分离?

01
前后端分离是一种项目开发模式

当业务变得越来越复杂或产品线越来越多时,原有的开发模式就无法满足业务需求了。

产品越来越多,展现层的变化越来越快、越来越多,此时应该进行前后端分离的分层抽象,简化数据获取过程。

比如,目前比较常用的是前端人员自行实现跳转逻辑和页面交互,后端人员只负责提供接口数据,二者之间通过调用RESTful API的方式进行数据交互,如图1所示。

图1  前后端分离模式下的交互方式简图

此时就不会出现HTML代码需要转换成JSP进行开发的情况,前端人员只负责前端部分,并不会掺杂后端代码,这样代码就不再耦合。

同时,前端项目与后端项目也不会再出现耦合严重的现象,只要前后端人员协商和定义好接口规范及数据交互规范,双方就可以并行开发,互不干扰,业务也不会耦合,两端只通过接口进行交互。

在使用MVC模式开发项目时,后端任务往往过重,“控制权”也比较大,既要负责处理业务逻辑、权限管理等后端操作,也需要处理页面跳转等逻辑。

在前后端分离的模式中,后端由原来的大包大揽似的“独裁者”变成了接口提供者,而前端也不仅仅是原来那样只处理小部分业务,页面跳转也不再由后端处理和决定,整个项目的控制权已经由后端过渡至前端,前端需要处理的工作更多。

前端项目和后端项目隔离开来、互不干涉,通过接口和数据规范完成项目功能需求,这也是目前比较流行的一种开发方式。

02
前后端分离是一种人员分工模式

前后端分离的核心就是后端负责数据和逻辑的处理,前端负责页面显示和动效的交互。

在这种开发模式下,前端开发人员和后端开发人员分工明确,职责划分十分清晰,双方各司其职,不会存在边界不清晰的情况。

前端开发人员通常包括Web开发人员、原生App开发人员。后端开发人员则是指Java开发人员(以Java语言为例)。不同的开发人员只负责自己的项目即可。

后端人员专注于控制层(RESTful API)、服务层、数据访问层,前端人员专注于前端控制层、视图层,不会再出现前端人员需要维护部分后端代码,或者后端人员需要调试样式等职责不清和前后端耦合的情况。下面用两张项目开发流程的简图进行对比。

如图2所示为MVC开发模式下的开发流程,该开发过程中存在前后端耦合的情况,如果出现问题,前端人员需要返工、后端人员也需要返工,开发效率会有所降低。

图2  MVC开发模式下的开发流程

前后端分离后,开发流程如图3所示。

图3 前后端分离开发模式下的开发流程

前后端分离后,与原有的开发模式有了较大的不同,此时就可以并行开发多端产品。

在设计完成后,Web端开发人员、App端开发人员、后端开发人员都可以快速投入到开发工作中,能够做到并行开发。前端开发人员与后端开发人员职责分离,即使出现问题,也是修复各自的问题而不会互相影响和耦合,开发效率高且满足企业对多产品线的开发需求。

03
前后端分离是一种项目部署模式

前后端分离后,各端应用可以独立打包部署,并针对性地对部署方式进行优化,不再是将前端代码和后端代码耦合在一起,最终形成一个部署包进行部署

Web应用为例,部署前端项目后,不再依赖Servlet容器,可以使用吞吐量更大的Nginx服务器,采用动静分离的部署方式,既提升了前端的访问体验,也减轻了后端服务器的压力,再进一步优化,可以使用页面缓存浏览器缓存,也可以使用CDN等产品提升静态资源的访问效率

对于后端服务而言,可以进行集群部署,提升服务的响应效率,也可以进行服务化的拆分等前后端分离后的独立部署维护及针对性的优化,可以加快整体响应速度和吞吐量

原文来自「Linux学习」|侵删

中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。我们每天都会分享各种IT相关内容,如果您有任何关于IT疑问,欢迎给我们留言

小白必读!寰宇卫士手把手教你栈溢出(上)

手把手教你栈溢出(中)

手把手教你栈溢出(下)

《信息安全知识》之法律关键常识汇总

CTF经验分享|带你入门带你飞!


文章来源: http://mp.weixin.qq.com/s?__biz=MzIwMzU0NDY5OA==&mid=2247496690&idx=1&sn=0c752630d1730583448bb28e31f86807&chksm=96cf72e7a1b8fbf137bf5b3c9f3eaeef0607d3d4dab63311c99a36eb9df87b1aea30b98b7138#rd
如有侵权请联系:admin#unsafe.sh