发表于: 2017-12-13 19:33:09
1 643
今日完成的事情:
通过这几天的接口文档和方案设计,自己的缺陷爆露出来好多。在做任务的时候都是面向任务编程,现在通过复盘需要把自己的知识重新好好梳理一下,要学会学以致用。
分析几个今天遇到的问题:
最重要的首先说吧:
前后端分离的思想,这几天一直想不明白,在我的固有印象中,前端只是把页面做的漂亮一些,今天严言给我上了一课。
1)前后端没有分离的时候是怎么样完成web开发的(也是自己做任务的时候想当然的想法):
1.客户端请求
2.服务端的servlet或controller接收请求(路由规则由后端制定,整个项目开发的权重大部分在后端)
3.调用service,dao代码完成业务逻辑
4.返回jsp
5.jsp展现一些动态的代码
2)这种做法的缺点:
1.jsp上动态资源和静态资源全部耦合在一起,服务器压力大,因为服务器会收到各种静态资源的http请求,动态代码的等等,除非你使用nginx。
万一你的java代码出现了bug,你的页面是显示不出来的,直接蹦到了5xx页面,用户体验极差。
2.如果jsp中的内容很多,页面响应会很慢,因为是同步加载。
3.如果在生产环境中,发现了前端的bug,让前端工程师来调试bug,这个时候的页面已经很混乱了
4.第一次请求jsp,必须要在web服务器中编译成servlet,第一次运行会较慢。
3)前后端分离之后如何完成web开发:
1.浏览器发送请求
2.直接到达html页面(路由规则由前端制定,整个项目开发的权重前移)
3.html页面负责调用服务端接口产生数据(通过ajax等等,后台返回json格式数据)
4.填充html,展现动态效果,在页面上进行解析并操作DOM。
4)这么做的优点是什么?
1.可以实现真正的前后端解耦,前端服务器使用nginx。前端服务器放的是css,js,图片等等一系列静态资源
2.发现bug,可以快速定位是谁的问题,不会出现互相踢皮球的现象。页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。双方互不干扰,前端与后端是相亲相爱的一家人。
3.减少后端服务器的并发压力,除了接口以外的其他所有http请求全部转移到前端nginx上。
4.即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。
总之有点还是很多的。
5)如何实现?
1.一些前端得静态页面现在交由前端处理。
2.后端只返回json数据。
具体的一些实现还要自己搭建环境之后才能体会的到。
第二个问题:
图片上传的问题。对于把重复的代码提取出来复用的思想理解的不是很透彻,包括我的前端小伙伴,今天师兄给我们也上了一课。
1)为什么把重复的代码提取出来,有点是什么?
1.实现代码的复用,每个方法都专注于自己的主要业务。比如:有1000个接口调用图片上传,不肯能把图片上传的方法写1000次,这个时候就需要分离。
2)容易查错,当接口出现问题,就可以快速的定位是自己的图片上传的接口出错,还是调用图片上传接口的方法出错。比如:1000个接口里面都写了图片上传的方法,如果是图片上传的方法出错,可能要把1000个接口都要检查一遍,并且修改一下。
3)可维护性强:图片上传接口需要增加一些功能,可以直接就在图片上传接口里面写了,然后1000个调用图片上传接口的方法就都有这个增加的功能了。
4)自己的代码看起来逻辑也更加清晰了,一个接口里面不会有太多的代码。
明日计划的事情:
明日进行方案评审,然后拆禅道,学习代码生成和环境搭建,这个要我们分工完成。
遇到的问题:
比较浮躁,学习知识知识知道怎么用,却不知道为什么要这么用。
收获:
复盘项目是对自己的一大提升,在这个过程需要稳扎稳打,不能再浮躁了,还有自己不懂得知识一定得及时学习,不能再像任务一样能用就行,必须要深入学习。
评论