hello~各位读者好,我是鸭血粉丝(大家可以称呼我为「阿粉」),在特殊的日子里,大家要注意安全,尽量不要出门,无聊的话,就像阿粉一样,把时间愉快的花在学习上吧。
事情起因
阿粉自从学会Java以来,一直都是在从事关于Java的开发,不论是换了几家公司,阿粉一直都是负责的关于后台的业务,很多都是前后端分离的,前端是写前端的代码,后端只负责逻辑实现和返回所需要的值,但是让人没想到的事发生了,公司前端临时被其他项目组调走,领导要求项目还要上线,阿粉不得不再次扮演全职员工上线。
每天最多的时间就是看前端小姐姐写的代码,另外的一件事就是和前端小姐姐沟通怎么去写前端代码,为此阿粉还付出了两顿饭的代价!
为什么要前后端分离
之前在看一个哥们的博客的时候,觉得这个哥们说的特别的好,为什么前后端分离,因为前后端分离已成为互联网项目开发的业界标准使用方式,通过 Nginx + Tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。
说白了,前端和后端的区别在哪?
前端
通过 UI 给出的图,做出相应的格式的网站,把精力放在html5,css3,jquery,angularjs,bootstrap,reactjs,vuejs,这些前端内容模块上。
后端
把数据库中的数据,用 json 或者其他的格式,还给页面,实现动态展示的功能,把精力放在java基础,设计模式,jvm原理,还有对性能的优化上。
二者也是有本质区别的,后端注重的是并发,优化,安全等,而前端注重的是浏览器兼容性,页面是不是好看等。
阿粉现在的公司,还处于最原始的时期,那是个什么样子的呢?
这种开发模式其实很多小公司还是使用这种开发模式,这种模式有很大的弊端存在,大家一定都知道,开发效率及其低下,很多时候,要先有图,然后再 HTML 页面,然后再是我们后端来补充数据,这种方式之后出现问题我给大家来展示一下。
在这里,也是最容易出现问题的,如果线上出了问题,就出现了相互甩锅的情况了;
前端会后端说:你那里有问题么?我这里的前端代码没啥问题呀!
后端对前端说:有点小小的问题,你看,这个样式填充上去的时候,格式乱了,而且.....
接下来的事情很常见,前端坐到后端的位置上,开始调试代码,这是不是很尴尬,一次两次没问题,但是次数多了,这个锅到底该谁来背!肯定是后端,你看你连个前端代码都不会改,心底里会给你个深深的鄙视!为了不让领导对你鄙视,接下来你就出现了:
加班就变成了习以为常的事情了,这就是前后端不分离的弊端,现在很多小型企业都还是这种开发模式,和阿粉的小型公司一样。前后端没有分离的整体图解如下:
既然前后端不分离的既然这么多,那么前后端分离肯定没有这么多麻烦吧,是的,没错,前后端分离,写代码的速度明显变快,而且要求也比较高,大家可以看图:
从图中看出来了一个问题,前端后端同时可以干活,光从这个上面来说,开发效率那是杠杠的呀,要是按照前后端不分离的时候,那时间周期可能节省一半左右的时间,虽然大部分的时间可能花在了讨论接口的上面,但是实际开发起来,那速度可是飞快。
那么既然前后端不分离会出现问题,那么前后端分离会出现问题么?答案一样是肯定的,也是会出现同样的问题的,如果说客户的“不合理需求”变了,只要说当时商量的接口和接口形式不变,那么很简单,个人改个人的,不用想,开发效率依旧很快!
既然前后端分离了,那么后端还要会前端么?
之前星球的刚刚入职的小伙子曾经问过我一个问题,我刚刚入职。老大给我的活又是后端又是前端的,你说这个工作我到底是做还是不做,在这里阿粉想要给大家传递一些观念!
刚入职场的新人
因为现在好多的人都是培训出来的,而培训出来的人百分之90的人是只会写后端的代码,但是对于JS,和HTML那是一点都不会,因为在培训班的时候可能那些老师会对你说,没事这东西是前端写,不用你们来弄,实际上错了。
公司很多时候,需要你去完成JS部分和简单的修改HTML部分,但是相对而言,你如果说不会写CSS的话,那么老大可能会原谅你,但是如果你说你不会JS,不好意思,老大可能在心里已经有了辞你的念头了,这都啥时候了,你竟然连JS都不会写,对于新人而言,刚入职场,需要你学的东西有很多,这只是其中的一部分,不可能说那么多人都去写前端代码,毕竟没有那么多的“全栈”。
阿粉就是当初在公司,每天也是恶补前端,现在只能说JS没有任何问题,比如说现在最火的Vue.js,还有之前比较火的Angular,而且会一些简单的HTML,但是对于CSS,阿粉表示,真的不会。
这也是阿粉为什么会给起了这么一个标题,尽量的选择前后端分离的公司,不然你一定会去写前端的一部分代码,毕竟小公司出了问题,一定是会找你的。
你公司需要你写前端么?欢迎大家留言,小编非常乐意和大家交流心得。
精彩回顾
为什么Mysql的常用引擎都默认使用B+树作为索引?
从页面输入网址,回车到显示内容,这中间到底经历了什么?
Tomcat出现漏洞了,阿粉问你,线上版本更换了么?
你知道 DNS,那我猜你一定不知道 HTTPDNS
< END >
如果大家喜欢我们的文章,欢迎大家转发,点击在看让更多的人看到。也欢迎大家热爱技术和学习的朋友加入的我们的知识星球当中,我们共同成长,进步。