我们每天都在写代码,那有没有想过你的每行代码能值多少钱呢?
我们知道任何商品的价格都是由供求关系决定的,代码其实也一样。显然代码的需求量是很大很大的,当然供应量也不算小,每年都有大量投入市场的程序员待价而沽。所以有的同学会说,每行代码的价格就等于程序员的月工资除以这个月他产出的有效代码行数(也就是真正进入了生产系统的代码)。
这个计算方法本身是没错的,但其实这种方法计算的是代码在生产出来的时候的成本。你可以理解为代码的出厂价或者说成本价。那么像别的商品一样,代码在生产出来之后,实际在市场上售卖的话会是什么价格呢?
很明显,代码的价格是由它所实现的产品决定的。如果产品本身没有价值,那么即使代码写得再出色再优秀,那依然是一文不值,哪怕这代码能当别人写代码的教科书。
那么如果产品的市场价值很高,它的代码就值钱了么?其实这也未必。首先在产品的价值里,代码只是其中的一部分。如果代码本身不具有什么技术含量,别人可以很轻易复制功能重新实现的话,那这个代码实际上是相当不值钱的。
为什么这么说呢,程序员不是都很贵吗?生产代码的成本不是很高么?这主要是因为写代码的成本很高,但维护代码的成本可能会更高。代码写出来之后并不是只让机器理解执行就够了的,因为它还需要被人所理解,才能继续维护下去。只要产品还活着,那么代码不需要再改动的可能性太小了。然而通常代码的特性是写比读要容易得多,这也就使得当你在维护别人的旧代码的时候,经常会感觉到不如重写一份更省事些。所以烂代码从这个角度上说确实是一文不值的。
有个术语叫遗留代码(legacy code),指那些生产出来之后需要被人理解维护的旧代码。如果我们不把代码当做幼苗精心培育的话,那么它被写出来的时候就已经成了遗留代码,因为再过几天你就会发现自己也看不懂了。
所以烂代码是不值钱的,值钱的是维护它的程序员而已。从这个角度来说,程序员应该更多的生产烂代码,从而让自己更值钱,这好像是有点荒谬呢_