前后端分离技术如何走到今天

前后端分离之前的事儿

以前在软件行业,无论是JAVA工程师还是.NET程序员,都是全栈,因为从数据库设计到后端接口开发,再到前端页面的搭建,全靠一个人实现,这种好处应该体现在节省劳动力上,但是在很大程度上,对于这些工程师来说,他们更擅长后端,前端技术稍微薄弱,但是做项目和功能是没问题的,只不过前端代码看起来略显得粗糙。

再后来,电商网站、P2P行业的崛起,加速了前后端分离的脚步。这也许是一个契机,对于一个后端人员来说,想要实现炫酷的前端效果,就不得不花更多的时间去研究H5或者CSS3,各种前端的模版引擎。为了前端代码可以复用,使用了各种各样的办法,从最开始的Copy,到组件化,模板化。这个过程发生的很迅速,但是我知道,它一定会来。

于是,当时作为ASP.NET女程序员的我,果断选择了WEB前端工程师的这个行业。从而认真的对待前端开发这件事,而不仅仅是写出来功能那么简单,需要考虑的是兼容性以及效果,还有用户体验等等各个方面。

再后来,就出现了各大框架,node.js、angular.js、vue.js、react.js、Flutter等等。但是对于我来说,这些技术框架的出现,更像是一次对前端工程师的洗牌,它们代表着,前后端分离时代的来临,前后端也开始正式分家。

我们再看,node.js它在前后端之间搭起一座桥梁,但是对于前端工程师来说,写代码,不再是 html、css、images文件夹,它的编码环境变得更加的复杂,需要使用到各种脚手架工具,以及依赖。

但是技术这件事告诉我们,当你习惯使用新技术时,你就不会再想去碰老的技术,因为只有最好的技术,才会有人使用,而最流行的一定是目前最好的。工程师们,不会去用刷流量的方式去让技术流行起来,只有它真正的好用,才会被人使用。要不然它就会石沉大海。

前后端分离

再来看今天流行起来的前后端分离技术,它让前后端分工更加明确,开发效率更高。但同时也更加考验团队的配合默契。从现在看,任何的技术都在朝着:复用性强、开发效率快、兼容性好的方向发展。不管是JAVA的微服务,还是前端的组件化,都是如此。

前后端分离唯一要考虑的就是跨域服务,因为前后端分离之后,代码和编码环境都不在一起,它们本身是独立的。所以需要搭起一个中间的桥梁,让这两个的服务相通。

目前最常见的有:Nginx。

那么Nginx可以做什么呢?它可以做以下几点事情:反向代理、负载均衡、HTTP服务器(动静分离)、正向代理。

我们前后端分离就需要使用到它的反向代理技术。什么是反向代理呢,以下是百度百科的说法:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。

另外,我们也可以使用node.js做中间件服务。由node.js做服务端和api之间的通信,再将结果返给web端。这样也可以实现前后端分离。

不管你用什么方式去做前后端分离,当你的领导问你一个项目需要几个人的时候,我会告诉他,最少2个。

他问:为什么

我说:因为我需要一个前端、一个后端。

在这个技术成长迅速的今天,前端工程师对于一个团队来说,更加至关重要。后端服务只需要开发一次,但是UI层需要展示的页面,却可以千变万化。

技术的发展和潮流将会越来越深入人心,但技术开发者,却要知道,所有的技术,它都有共通的地方,所有的技术都是在发展的、迭代的。

我们不一定要紧跟时代的步伐,但是也不能落后的太远,我们需要做的是:不断学习,终身成长。

推荐阅读更多精彩内容