Web开发

首页 » 常识 » 诊断 » 前后端为什么选择了分手
TUhjnbcbe - 2022/11/17 21:33:00
白癜风人民大会堂活动 https://yyk.familydoctor.com.cn/2831/content_1036840.html

前后端分离已经逐渐成为互联网项目开发的业界标准使用方式。

通过Nginx+Tomcat的方式(也可以中间加一个Nodejs)有效的进行解耦。

前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。

这个步骤是系统架构从猿进化成人的必经之路。

核心思想是前端HTML页面通过AJAX调用后端的RESTfulAPI接口并使用JSON数据进行交互。

在互联网架构中:

Web服务器:一般指像Nginx,Apache这类的服务器,他们一般只能解析静态资源。

应用服务器:一般指像Tomcat,Jetty,Resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有Web服务器好。

一般都是只有Web服务器才能被外网访问,应用服务器只能内网访问。

术业有专攻(开发人员分离)

以前的JavaWeb项目大多数都是Java程序员又当爹又当妈,又搞前端,又搞后端。

随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。

正所谓术业有专攻,一个人如果什么都要做,什么都容易做不精。

大中型公司需要专业人才,小公司需要全才。

但大雄觉得对于个人职业发展来说,在还没有成为全才的时候,精通一个方向更实际。

对于后端Java工程师:

需要把精力放在:

Java基础,设计模式,Jvm原理,Spring+SpringMVC原理及源码,Linux,Mysql事务隔离与锁机制,MongoDB,HTTP/TCP,多线程,分布式架构,弹性计算架构,微服务架构,Java性能优化,以及相关的项目管理等等。

目标追求的是:

三高(高并发,高可用,高性能),安全,存储,业务等等。

对于前端工程师:

需要把精力放在:

HTML5,CSS3,Jquery,AngularJS,Bootstrap,Reactjs,VueJS,Webpack,Less/Sass,Gulp,Nodejs,GoogleV8引擎,Javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。

前端追求的是:

页面表现,速度流畅,兼容性,用户体验等等。

术业有专攻,核心竞争力会越来越高,因为现在两端的发展都越来越高深,你想什么都精通,难度会越来越大,最后一场空。

通过将team分成前后端team,让两边的工程师更加专注各自的领域,独立治理,然后构建出一个全栈式的精益求精的team。

但是大雄提醒大家:这是工作到一定阶段来说的哈,学习的时候最好还是都学要学,这样才能对业务有整体认识和把握,team才算得上是team。

开发模式

老的方式是:

1、产品经理/领导/客户提出需求

2、UI做出设计图

3、前端工程师做HTML页面

4、后端工程师将HTML页面套成JSP页面

(前后端强依赖,后端必须要等前端的HTML做好才能套JSP。如果HTML发生变更,就更痛了,开发效率低)

5、集成出现问题

6、前端返工

7、后端返工

8、二次集成

9、集成成功

10、交付

新的方式是:

1、产品经历/领导/客户提出需求

2、UI做出设计图

3、前后端约定接口数据参数

4、前后端并行开发

(无强依赖,可前后端并行开发,如果需求变更,只要接口参数不变,就不用两边都修改代码,开发效率高)

5、前后端集成

6、前端页面调整

7、集成成功

8、交付

请求方式

老的方式是:

1、客户端请求

2、服务端的Servlet或Controller接收请求

(后端控制路由与渲染页面,整个项目开发的权重大部分在后端)

3、调用Service,Dao代码完成业务逻辑

4、返回JSP

5、JSP展现一些动态的代码

新的方式是:

1、浏览器发送请求

2、直接到达HTML页面

(前端控制路由与渲染页面,整个项目开发的权重前移)

3、HTML页面负责调用服务端接口产生数据

(通过AJAX等等,后台返回JSON格式数据,Json数据格式因为简洁高效而取代XML)

4、填充HTML,展现动态效果,在页面上进行解析并操作DOM。

前后端分离的优势

1、可以实现真正的前后端解耦,前端服务器使用Nginx。

前端/WEB服务器放的是CSS,JS,图片等等一系列静态资源。

(甚至还可以CSS,JS,图片等资源放到特定的文件服务器,例如阿里云的OSS,并使用CDN加速)

前端服务器负责控制页面引用跳转路由,前端页面异步调用后端的接口,后端/应用服务器使用Tomcat(把Tomcat想象成一个数据提供者),加快整体响应速度。

(这里需要使用一些前端工程化的框架比如Nodejs,React,Router,Redux,Webpack)

2、发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。

页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。

接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。

双方互不干扰,前端与后端是相亲相爱的一家人。

3、在大并发情况下,可以同时水平扩展前后端服务器。

4、减少后端服务器的并发/负载压力。

除了接口以外的其他所有HTTP请求全部转移到前端Nginx上,接口的请求调用Tomcat,参考Nginx反向代理Tomcat。

且除了第一次页面请求外,浏览器会大量调用本地缓存。

5、即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。

6、也许也需要有

1
查看完整版本: 前后端为什么选择了分手