Yard


从经济学角度来看前端和全栈

最近中美贸易战,所以突然对经济学产生了兴趣,我想通过经济学的原理来尝试说明前端工程师和全栈工程师的优劣。(本文经济学观点基于曼昆的《经济学原理》和亚当斯密的《国富论》)

1. 分工的重要性

分工的重要性在《国富论》的第一章里就阐述的很清楚:

  1. 分工使专职工人的技巧改良,技巧改良使得他所能成就的作业量增加。分工使每个人的业务还原为某一种单纯的操作,可能使这种操作成为他一生的专业,所有依然会增进工人的技巧。分工使得前端和后台能更深入的沉浸于自己熟悉的领域,用更熟练的技巧去创造价值。
  2. 从一种工作转到另一种工作时通常会损失掉很多时间。我们让每个人进行合理分工,可以减少每个人转换工作时不必要的学习成本,进入更大化的在相同时间内创造更多的价值。如果有一个前端想要写后端,他可能还需要很多的时间去熟悉后端的语言,环境,编程思想等,这就会造成很多时间的无谓损失。
  3. 适当机器的利用。而一块如果靠到编程的方向来讲的话,这些机器就是技术大牛所创造的框架、各类库以及优秀的编程思想。

2. 合作的重要性

在《经济学原理》第三章里,我们了解到参与贸易的每个人生产物品和服务的效率都是不同的,比如两个人之间都会有绝对优势比较优势

我们先来理解一个概念:绝对优势。 我们举个🌰,当我们把前端和后台放在一起比较时,(为了更清晰的讲解,我们把代码效率量化一下)前端对前端开发的代码效率是2个需求每天,对后端开发效率是1个需求每天(当然写前后端代码是不能同时进行的),后端对前端开发的效率是1个需求每天,对前端开发的效率是2个需求每天。我们可以比较得出前端对于前端开发有绝对优势,后端对于后端开发有绝对优势。所以我们可以通过合作将利益最大化,即后端全职做后端,前端全职做前端,那么我们可以得到的生产率是2个前端需求和2个后端需求。 其实这是贸易带来的好处,开发可以当做是一种服务,合作也可以当成是一种贸易。前端和后台之间相互贸易他们产生的服务,从而使生产率最大化。

那么如果我们改变一下每个人的效率,这时候前端是个大神,他可以以4个需求每天的效率写前端,3个需求每天的效率写后端,而后端还是原来的那个后端(1前2后),这个时候,他们两该合作吗? 我们先看看他们不合作的情况下。 12天里前端花9天写前端需求,3天写了后端需求 => 36前,9后 12天里后台花4天写前端需求,8天写了后端需求 => 4前,16后

我们再来理解一个概念:比较优势。 介绍比较优势之前我们还要先理解机会成本,机会成本是我们为了得到这种东西所放弃的其他东西。形象的来说那就是,你写前端代码作业量的机会成本是你写后端代码的作业量。

我们来看下前后端两个人的比较优势差别。 | | 完成一个前端需求的机会成本 | 完成一个后端需求的机会成本 | | ------ | ------ | ------ | | 前端 | 3/4个后端需求 | 4/3个后端需求 | | 后台 | 2个后端需求 | 1/2个后端需求 | 谁的机会成本小,谁就具有比较优势。 我们可以得出结论,前端在前端开发上有比较优势,后端在后端开发商有比较优势。 如果他们合作: 12天里前端花11天写前端需求,1天写了后端需求 => 44前,3后 12天里后台花0天写前端需求,12天写了后端需求 => 0前,24后 然后前端和后台合作,交换产生的前后端服务。后端用6个后端需求和前端交换6个前端需求。 44前,3后 => 38前,9后 0前,24后 => 8前,18后 我们可以看到前端比之前多了2和前端需求,后端多了4个前端需求和2个后端需求。总体上的效率居然提高了。是不是很奇妙,合理的分工和合作可以使两人的生产率都提升。这就是贸易和分工的好处。

3. 全栈工程师

讲解完分工和合作的好处后,我们再来分析全栈工程师的效率。 从前面的例子来讲,全栈工程师效率必然比前端工程师和后端工程师的合作低。 其实不是的,上面的合作情况非常理想,我们忽略了很关键的一项内容,那就是合作时因沟通而产生的内耗损失。这一点我们也可以用经济学的角度来做一个类比。如果在物品和服务交易(合作)的过程中,政府需要收取交易税,那么这个交易税就是我们在合作时产生的沟通内耗。 在《经济学原理》里详细的讲解了税收将造成无谓损失,如果有兴趣的同学可以去看看原作,在这里先不详细讲解了,如果有机会会在以后的文章里说明。

在最后,我们再来看看前端工程师和全栈工程师的优劣,其实这里的效率优劣主要取决于合作产生的收益和沟通损失的无谓损失之间的差别。如果合作产生的收益大于沟通损失的成本,那么就应该分工。反之,全栈工程师则更合理。