为什么祖传代码被称为屎山?
呃,还是第一次听到“shit mountain”这种说法,不过……我同意,绝大部分legacy code真的是够屎的。因为写出不屎的代码真的太难了!这里要强调一下,代码质量,表面上是一个技术问题,其实
为什么祖传代码被称为屎山?
呃,还是第一次听到“shit mountain”这种说法,不过……我同意,绝大部分legacy code真的是够屎的。
因为写出不屎的代码真的太难了!
这里要强调一下,代码质量,表面上是一个技术问题,其实是一个经济学问题。
这里有一个巨大的两难困境,就是一方面我们希望提高代码质量,但是现实中让代码变烂的力量又太强,要和这些力量对抗,不得不付出巨大的代价,而这个代价不是一般软件开发组织能够付得起的。
我们来看那些力量会让代码变烂:
- 程序员的技能水平。很不幸,干这行,入门真不需要受多少教育,不客气地说,是个人培训培训就可以上岗了,这些从业人员能够把事情搞定,但是真没有意识做长远考虑,也没能力做长远考虑,写出来的当然是一坨一坨。
- 管理层的短视。程序员的水平不高,好歹还可以通过培训,通过招募更强的程序员来弥补,但是,如果管理层想要的只有短期目标,“这个功能很简单,怎么实现我不管”,横批“明天上线”,哪怕是一群10x程序员也没法做出高质量的代码啊。管理层的短视,其实已经很难追责了,你可以因为一个管理者没有按期交付功能开除他,但还真很难因为他没有搞出可维护代码而开除他,没救了。
- 资本压力。万恶之首,还是资本,资本想要规模,一声令下,就要公司扩招多一倍程序员,满足场面,招来这么多人又管不好,除了生产垃圾还能怎样;一旦资本寒冬,又是一声令下,裁员一半,大家都没心情过年,来年哪有人有心维护代码质量。
所以说,如果真要保持高质量代码,不要生产屎一样的代码,必须要做到:团队里主体是有上进心的专业程序员,非常看重质量;管理层有长远眼光,不只看眼前利益,也知道代码质量带来长远收益;资本不会给予急功近利的压力(或者说这种压力能够被管理层挡住)。
上面3条,只要有一条不行,就全崩了,你说有多难。
你要雇得起一群高质量的程序员,这些人获得这样的教育和经验,价钱肯定不便宜。
你要有长远眼光的管理者,有这样眼光的管理者都是成功人士,不可能是穷王八,你说贵不贵。
你还要资本家不会鼠目寸光,这种资本家要有这样胸怀,肯定更要有钱。
所以,这是一个经济学问题,不是技术问题。
现在你知道让祖传代码不屎有多难了吧。
责任编辑: