最近和同事聊起全栈开发,让我想写此随笔记录一下,也分享一下我的理解。欢迎交流指正
何为全栈 What is full stack?
网上的概念解释很多,大家不妨自己搜搜。我说说的直观感觉,就是前后端都写,啥都可以开发。
其实全栈可以说是一个概念,是一种技术实现方式,但不应该是个职位或者个人要成为的目标。
哪里需要全栈 Where need full stack?
一个团队干的活,由一个人或几个人全栈开发完成,你说哪里需要他? 初创型小公司,人力紧张的团队,抑或是你在做一个私活项目等等。不难看出,这不是一个专业团队该有的开发模式。
全栈是个概念,大家都希望用最小的投入做最多的事情,用一个中技术解决所有问题,这个想法是好的,但它违背了事务发展的基本规律。
全栈可以是种技术描述,表示一种技术可以适应绝大多数开发场景,但你可知道这将带来多大的开发制约性?
做过项目的朋友估计都可以举出很多个例子来解释以上场景。
回到最初的问题,哪里需要全栈?没有钱的项目需要全栈,它其实不想技术术语反而更想管理术语。来做全栈工程师吧,潜台词是:活多钱少人手紧,最好你一人都干了。用全栈技术吧,潜台词:这个技术还不错,尽量用它做所有技术实现,虽然不一定都很顺手将就着实现就好了。
再见全栈 bye full stack
虽然我也经历过全栈开发,但最终,我个人是不赞同全栈开发的。汽车生产如此高效是因为流水线,流水提出最核心的内容其实是非全栈思想,不应该由一名工人安装一辆汽车,而是每类工人负责其中一个环节。
OK,以上这句话的潜在前提是,你是大公司,或者你是想做大做强的公司,否者请不要使用流水线,请使用”全栈方式”开个小加工厂也是可以的。
之前写全栈时感觉自己将手握前后两端,所向披靡,谁不知人的精力是有限的,结果一切都做的皮毛。
随着年龄增长,技术人员需要成为某一个领域的专拣并深入进去,当你想成为专家时,请不要考虑全栈,我想没有一个技术领域的专家投身于全栈开发。
前端后端分离,开发职位细分是一个高效团队的基础。如果你在一个开发职位细分的团队,我想你很幸运,同时请把专长领域外的开发当作乐趣吧。
请轻易不要和我说全栈开发,不是不想做,是我做不到。
补充 Addition
写这个文章之后的一天看到此篇外文,感觉不谋而合,推荐一下:
Full-stack developers are in fact stuck at mid-level. Spare yourself from suffering – don’t go down that path