全栈是什么意思

软件开发当中,前后端分离成为主流的开发模式,我如果没有说错的话,也就是近几年的事情。在我刚毕业那会儿,主流编程语言Java还到处都是Jsp、.Net还是Asp。主要特点就是前端和后端的界限不大,基本上一个人就可以搞定!

随着前后端分离成为主流开发模式,像Java和C#最多用来开发后台接口,前端渐渐就被忽视掉了。尽管现在很多用惯了Jsp或者Asp的人仍然觉得它们好,但是也仅仅是出于喜爱了。现在大部分软件公司其实已经抛弃了Jsp和Asp选择了前后端分离!

但是,前后端分离会有一个说不上弊端的弊端,那就是相比Jsp和Asp,前后端分离的项目往往需要新招一个前端工程师。因为前后端分离成为主流开发模式之后,很多人学习编程的方向也变成了纯前端和纯后端。不像我们以前在学习编程的时候,是需要前端和后端技术一把抓的!

前端的开发框架现在也有不少,主流的无非也就那么几个,比如Vue和React。

有的公司为了节省人力成本,往往就会要求程序员“全栈”,意思就是前端和后端都一个人去写。但是呢,在开发模式上,却选择了前后端分离。于是有些程序员就会产生一个疑问,那就是:“既然前后端都是一个人去写了,为什么还要前后端分离呢?”。

这个问题很有意思,其实我最开始也不明白,因为我最开始接触到前后端分离的项目时,我也是一个人去写,并且也产生了这种疑问。

有一段时间我甚至觉得公司这么做就是盲目随波逐流,看别人都这么做,自己也这么做。但是,当我后来项目写得多了以后,虽然我大部分时间都在写后端,可我还是觉得前后端分离是很好的开发模式!

路由控制

虽然Jsp和Asp写起来比较简单,但是Jsp和Asp有个比较尴尬的点,那就是后端控制器模块经常要用来控制路由跳转和重定向。有时候一个简单的改动,可能前后端都得一起改,相对来说前后端代码比较耦合,不利于扩展。

而前后端分离以后,后端的功能就比较单纯了,基本上只需要提供接口用来增删改查就可以了。即使前端某个页面被弃用了,后端接口也不需要改动。此时,后端路由只指向接口而不指向视图,提高了接口的复用性!

分开部署

Jsp和Asp有一个共同点,那就是前端和后端是耦合在一块的,原因在于,程序在编译时并不是分开编译的,所以需要共同部署。无论前端和后端有任何改动,都需要重新对整个项目进行部署。

但前后端分离以后,前端和后端只需要各自处理自己的问题即可。一个项目可以有一个后端有数个前端,也可以有一个前端,数个后端。原则上,它们之间只需要关心数据而不用干涉对方的行为,因此可以实现分开部署。

开发难度降低

“全栈”固然有好处,但是想要招一个“全栈”开发的人才其实并不容易。因此,将前端和后端分离,前端干前端的事情,后端干后端的事情,事情相对来说就简单多了!各自都有更多的精力来优化前后端的细节。

虽然“全栈”会给公司带来节省人力成本的好处,并且程序员一个人搞定前后端也可以减少很多沟通成本,程序员自己写项目写起来是很爽,但如果项目一旦大起来,也很累!所以“全栈”其实并不适合大型项目。

但即使是小项目也并不意味着前后端分离的开发模式就不适合!上面说了,“全栈”招人是比单独招前端和单独招后端要难得,所以一旦之前的项目负责人离职了,很难在很短时间内招到合适的人才,项目估计就要暂时搁置了!

前端框架成熟

现在的前端框架已经很成熟了,方便程度一点也不亚于Jsp和Asp。并且,因为Jsp和Asp支持的前端组件默认还是以JavaScript和Css为主,很多现在比较美观大方的UI想要实现,还得自己造轮子。

虽然可以通过引用来使用主流的JavaScript库和UI库,但是如果这么做的话,也会受到很多限制。最重要的是,如果这么做的话,为什么不干脆前后端分离呢?

结语

综上所述,即使程序员是一个人开发前端和后端,前后端分离依然有很多好处,总结起来就利于开发维护和好招人!

如果我说完了你还不明白这个道理,那么你只需要知道一个道理就可以了,那就是整个IT行业都在使用前后端分离这种开发模式的时候,你只需要跟着“站队”就可以了!

全栈是什么意思