互联网中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、选择合适的认证机制
同样根据自己团队的特点,选取最适合自己的前后端衔接认证机制,目前互联网公司最常用的就是Autho