“全栈”工程师只是一片涂不匀的草莓酱

全栈,是用有限(且更依赖于人偏执性)的片面思维换取所谓通用性,在该通用模式被计算机取代之前的临时折衷做法。

实际问题中,存在了多个“栈”,虽有少量交叉,但它们的存在恰恰是因为有自己独特的问题域(貌似没有存在两种相同“栈”的理由吧),对应每个问题域都沉淀和使用了最高效的方案,比如网络层和数据层的架构和调优,所以,每个“栈”之间大部分理念和思维方式都可能是不兼容甚至是冲突的,这也是语言大战、工具大战、鄙视链等等现象出现的原因——这恰恰是系统分层的本质特性。

再来说说人,“全栈”的出发点,是为了寻找兼容所有问题域的方案,说白了,就是花一份钱买一百份收益(对,我也想到了山寨手机),但卖方真的是啥波一吗?那么,一旦引入“全栈”工程师这种非常容易出现个人偏执(即这个人必有所长有所短)思维的个体,这样的方案势必会抹掉差异,并将问题归结为砍头去尾的某些统一模式,那实际情况很可能是:

在有限精力下,这个人要做的只能是“掩盖个人有限精力和偏执性在专业领域的短板,并强行忽略之”。

试想,为什么node.js这类受很多“全栈”工程师追捧逆袭到后端的技术卖点却是“只需要会js”?岂非矛盾?

所以,这个圈里可以存在“全栈”团队(优势互补分而治之),而几乎不存在所谓的“全栈”工程师——这由人类思维的局限所左右,后者只能是一片涂不匀的草莓酱,或者你只需要来个稀里糊涂的买卖(并非专业需求),或者是一些抠门老板YY出来的称呼。

当然,市场的选择,导致目前主流问题域出现了一些整套的相似方案(比如一个典型的Blog系统,当然还有我们经常遇到一些前辈烟圈里翻腾的那句“软件不就那么回事,不就数据库么”),但人们往往忽略了一个支撑信息产业到现在的最根本理论:只要能复制的,都可以交给算法去执行。这些方案都趋向于由工具或者更高级的模式屏蔽差异,“全栈”的期望愈演愈烈是技术发展走向新高一层的中继,也是认知层次提升所需要经历的阶段。

所以,“全栈”更适合一些初创团队快速demo处理一些“先搞起再说”的场景,而当问题域变得复杂,专业需求不再是可忽略的场景下,一味的“全栈”反而阻碍了技术栈的深度——栈溢出,或者把时间浪费在了上下文切换上,再或者跟鸠摩智一样武功尽废。

可怜的架构师。

 

标签: , , ,
文章分类 专业添乱师, 无力吐槽

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计