对java前后端分离的理解

java

到目前为止,身为一个java后端开发人员的我,

在工作期间,无非就是ui设计页面,前端开发html,之后将做好的页面交给我,我负责后台逻辑一件html的页面渲染。

好好滴一个后台开发人员,莫名其妙的做起了前端的活,很是心累啊。

一直不明白前后端分离是啥情况,今天看了一篇博客,说的真到位。

偏头痛杨 看就对了,到位。

先前一件公司使用jsp,效率着实够低。

jsp必须要在支持java的web服务器里运行

4.第一次请求jsp,必须要在web服务器中编译成servlet,第一次运行会较慢。

5.每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高(是每次哟,亲~)。

6.jsp内有较多标签和表达式,前端工程师在修改页面时会捉襟见肘,遇到很多痛点。

7.如果jsp中的内容很多,页面响应会很慢,因为是同步加载。

web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。

应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。
一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。

对于后端java工程师:

把精力放在java基础,设计模式,jvm原理,spring+springmvc原理及源码,linux,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构(dubbo,dubbox,spring cloud),弹性计算架构,微服务架构(springboot+zookeeper+docker+jenkins),java性能优化,以及相关的项目管理等等。

后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。

对于前端工程师:

把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,webpack,less/sass,gulp,nodejs,Google V8引擎,javascript多线程,模块化,面向切面编程,设计模式,浏览器兼容性,性能优化等等。

前端追求的是:页面表现,速度流畅,兼容性,用户体验等等。

之前讲师说做一个全战的程序员,前后端通吃,我发现,入门很容易,深入真的很难

正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。

开发模式

以前老的方式是:

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。

(有兴趣的童鞋可以访问一下阿里巴巴等大型网站,然后按一下F12,监控一下你刷新一次页面,他的http是怎么玩的,大多数都是单独请求后台数据,

使用json传输数据,而不是一个大而全的http请求把整个页面包括动+静全部返回过来)

以上是 对java前后端分离的理解 的全部内容, 来源链接: utcz.com/z/394526.html

回到顶部