互联网Web项目如何做到前后端分离

互联网中Web项目如何做到前后端分离,“如何做到前后端在开发阶段的互不影响”一直是困扰互联网开发团队需要考虑的问题,从业互联网几年,谈谈自己的想法。

第一、前后端不分离存在的问题

1、项目资源耦合高,资源和静态资源全部耦合在一起,服务器压力大,一旦服务器出现状况,前后台一起暴露问题,用户体验极差。
2、项目流程中,UI出好设计图后,前端工程师只负责将设计图切成html,需要由后端工程师来将html套成各种能和后端契合的frame框架页面,出错率较高,因为页面中经常会出现大量的js代码或者html代码,修改问题时需要前后端工程师双方协同开发,效率及其低下。
3、市场上的视图框架必须要在支持相应的后端web服务器里运行,入Java需要tomcat等等的容器中运行,无法使用nginx等高性能服务,比如nginx单实例http并发高达5w这样的优势无体现出来,性能提不上来。
4、耦合的视图框架第一次请求如jsp,必须要在web服务器中编译成servlet,第一次运行会较慢,这个其实还可以接受。
5、耦合的视图框架入jsp每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高。
6、很多框架内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到很多痛点,维护成本高。
7、视图框架如果如果内容很多,页面响应会很慢,因为是大多数视图框架都是同步加载,入Jsp等。
8、需要前端工程师ide要与后端工程师的开发环境高度耦合,造成前端工程师的开发效率低下。
其实前后端不分离的也是有好处的,就是主线清晰,前后端开发衔接紧密,只要工程师技术过硬,也是可以的。但是这就完全不能适用于规模化的互联网项目。
基于上述的一些痛点,我们应该把整个项目的开发权重往前移,实现前后端真正的解耦!

第二、具体的实现方法
1、前后端服务分离
前后端根据开发团队的特点,选取最擅长的技术流,入前端vue,node,后端Java等等
2、选择合适的认证机制
同样根据自己团队的特点,选取最适合自己的前后端衔接认证机制,目前互联网公司最常用的就是Autho2.0授权机制,也可以选择普通的token、cookie等等认证机制,根据自身项目状况选择即可。
3、建立前后端认证契约(或接口)
根据所选择的认证机制,前后端约定项目认证,不可有第三种情况,否则就是给自己挖坑。
4、前后端项目独立部署
将前端和后端服务独立部署(分布式),前端通过API接口来调用所需要的后端服务,接口认证根据自己选择的约定的认证方式认证。
5、独立开发
前后端的衔接调用只需要中间提供接口文档就行,入比较常用的swagger框架,只要接口文档约定好,中间前后端无需其他的耦合工作。这样,专业的人做专业的事,大家同步执行,起步前行,互不干扰。

第三、分离后可能出现的问题
前后端分离会出问题吗?会,但是相比较以前高耦合的开发状态,前后端分离在互联网项目中优势明显,毋庸置疑。

第四、 一些不适合前后端分离的开发场景
很多传统的政务项目,老旧长远,你想想就行,千万别想着去分离它,不然你跳在坑是别想出来了。

总结
前后端分离并非仅仅只是一种开发模式,而是一种架构模式(前后端分离架构)。千万不要以为只有在撸代码的时候把前端和后端分开就是前后端分离了,需要区分前后端项目。
简而言之:前端项目与后端项目是两个项目,放在两个不同的服务器,需要独立部署,两个不同的工程,两个不同的代码库,不同的开发人员。前后端工程师需要约定交互接口,实现并行开发,开发结束后需要进行独立部署,前端通过接口来调用调用后端的api。前端只需要关注页面的样式与动态数据的解析&渲染,而后端专注于具体业务逻辑。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值