全栈是个伪命题?!

本文原载于公众号,可以猛戳这里查看 ,也可以扫码关注 :P。 alt

  最近老是看到很多人要找全栈工程师,有些想法,吐吐槽。要是得罪了谁还请大家见谅。

1、什么是全栈

  全栈工程师是什么?全栈是最近几年开始流行的概念,主要指一个工程师能够完成从前端界面到后端逻辑,到数据库实现的开发工作。在过去没有前端工程师的日子里,所有人都是全栈,因为前端界面代码都是由后端开发者来开发的。

  随着web的发展,前端工作越来越复杂,后端的兄弟们,没有时间和技能来处理越来越复杂的前端交互和ui展示部分。随后,软件行业出现了更细分的领域----前端开发工程师。这个领域入门容易精通难,和后端的学习曲线完全不同。而且前端的技术发展很快,新技术层出不穷,很多专业的前端工程师都跟不上趟,遑论后端的同学了。所以,现在把能前后端通吃的开发者称作全栈开发者。

2、道路光明?

  成为全栈的技术路线无外乎两条,从前端向后端后者从后端向前端。

  先说从前端向后端推进,碰到的第一个问题将是语言,选择哪一门后端语言进行学习,对前端来说都是一个挑战。nodejs的出现给前端带来了曙光,使前端可以不用学习一门新的语言,可以直达数据库,完成整个业务逻辑的开发,甚至有人说前端要一统江湖了,而事实到底是什么,后面我们再讨论。

  从后端向前端推进呢?如第一节所说,后端向前端发展相对“简单”。早些时候后端同学们就做一些前端界面的工作。但随着前端飞速发展,现在很多技能都是新的,导致后端要成为全栈,必须不断跟随前端技术的发展路径,不断学习,可他的老本行也在变化发展,导致后端很多时候没有时间和精力来深入研究前端技术,这就阻碍了后端同学成为全栈工程师。

  总而言之,无论是从前端出发还是从后端出发,都有可能到达全栈的领域,不过我只能说,too young too simple。

3、过程曲折

  其实看似光明的道路上布满了坑。

  前端向全栈发展的路上坑很多!由于前端工程师入门简单,很多前端只会写简单的css样式和js事件绑定,对数据结构,算法,设计模式,数据库优化等等没有太多概念。因为在日常工作中,只要实现简单的按钮点击,各种交互就可以了。拿着前端的思路去后端的领域里玩耍,只能说会死的很惨,nodejs一样救不了你,其他后端语言碰到的坑,nodejs一个都不少的都会碰到,甚至有些东西根本就不适合用nodejs来做。所以,前端在学习后端的路上,整个学习曲线并不会由于nodejs的诞生而降低很多。

  后端向全栈发展的路上坑同样多!第二节已经提到了,后端工程师向前端发展时需要投入大量精力和时间学习前端的种类繁多的新老技术,并且随着的前端代码越来越复杂,出现了一些不同于后端的思路,从后端出发迈向前端的道路上也是布满荆棘。

4、为什么鼓吹全栈

不可否认,前端懂点后端或者后端懂点前端,对开发工作是有百利无一害的。但是懂一点和能写出像样的代码,完全是两码事。

  之所以鼓吹全栈,有两个理由:   一,中小创业公司需要更低成本的找到能实现其试错需求的人,所以要求开发人员什么都懂一点。具体懂多少反而没关系,只要能把需求整出来就行了。代码烂也没关系,公司能不能活下来还不知道呢,等公司做大了再找人重写。

  二、很多公司参考阿里和腾讯的前后端分离方式,要求前端一直做到web服务器(nodejs),所以催生了大量的所谓全栈工程师的需求,然而连数据库都没有连接过,只懂得一点nodejs语法,就能够称之为全栈么?我觉得还差的很远。

  除了极少数前后端都玩的很溜的人,我觉得都不能够被称之为全栈工程师。要求前后端都懂点,甚至能做简单开发是没错的,不过只懂皮毛的人还是不要大言不惭的说自己是个全栈工程师了。

Table of Contents