论前后端分离的好处
Posted 左直拳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论前后端分离的好处相关的知识,希望对你有一定的参考价值。
前后端分离最大的意义在于前后端可以并行开发。
现在搞BS架构程序,前后端分离应该是主流了。前后端分离有什么好处呢?我认为最大的好处是,使得前后端可以并行开发。其次是前后端分离成2个不同的工种,好比桥接模式,各自独立演化,使得各自的水平会越来越高。
前后端分离对于产品来说,并没有很明显的好处。也就是说,前后端分离,并不比前后端不分离的程序更好。表现都是一样的。反而不分离的程序,页面输出时,就能夹带一些服务器变量,不必页面加载完毕后又请求一轮,可能性能会更好一些。当然啦,如果服务器输出这些变量要做很长时间的运算,那还是异步加载用户体验好。至于现在的VUE、react,默认是单页面应用,各种切换比多页面流畅,那是另一个维度的东西,跟前后端分离不是一回事。
以往虽然有什么asp.net mvc,各种模板引擎,但这些都不是真正的前后端分离,在开发流程上,没有办法截然分开。现在不一样了。
并行开发,意味着开发进度的提升。但有个前提条件,就是要投入更多的人力资源。比如说,一个项目,划分为2个子系统,原本投入2个人开发,每人负责1个子系统,既搞前端又搞后端。现在前后端分离,应该投入4个人,每2个人搞1个子系统,其中1人前端1人后端,理想的情况下,系统开发进度将缩短一半。如果还是2个人搞,1个人负责所有的前端,另一个人负责所有的后端,我觉得改善可能不大。当然,这里面可能会有一些组件复用,也许能够缩短一些时间,但改善不会太多。同一个项目组里,就算人人前后端一起搞,也同样可以做到组件复用。所以说,前后端分离,要靠增加人手才能取得效果。以资源换进度。
前后端分离也有缺点。前后端并行开发,更多的人员参与,意味着沟通成本增加了。原本一个人按照设想开发,很顺畅,现在前后端要频繁沟通。这也对设计师提出更高的要求。就是很多东西要预先想得很清楚,否则后期的更改,成本会很高,甚至引起抵触。有些时候,有些东西很难一下子想得十全十美,只有边做边想,精雕细琢,才能做好。前后端不同人负责以后,基本杜绝了这种可能性。更可能出现的结果是,本来想改一下的,想想麻烦,就算了。难出精品。
按照一般的做法,前后端分离,变成2个工种,那么一个程序员,要么就是前端,要么就是后端。好处如前所属,前端和后端各自演化,各自领域的水平可以发展得很高。但是,前后端相互割裂,互相不了解,真的是好事吗?如果一个人既懂前端,又懂后端,做出来的东西会不会更好呢?前端只是从后端请求数据,好像根本没必要关心后端如何实现,融会贯通似乎没啥用。这个东西,我说不好。
从公司的角度出发,当然希望前后端人员分离,人人是革命的螺丝钉,流水线作业,程序员10元3个。能够很快出成品。
但我坚信全栈工程师更有利于程序开发。但我现在说不好这个道理。
2021.10.15
也许更可能的局面,是3个人搞一个子系统。1个前端,1个后端,1个系统设计师。当然,系统设计师也可能由前端或后端工程师兼任,但前后端截然分开,讲究分工的情况下,这种可能性不大。如果前后端都由全栈工程师负责,那其实1个人就能搞定,对于小公司,无疑更适合。一大窝前端,一大窝后端,人人胸前挂一牌子,十分白领、精英的样子,铁打的营盘流水的兵,召之即来,挥之即去;来之能战,去之飘飘,这种情形,也许只存在于大厂,或理想的状态?
以上是关于论前后端分离的好处的主要内容,如果未能解决你的问题,请参考以下文章