代码改变世界

【转载】来自Clean Code的一段话,正好形容公司目前一个系统

2012-06-07 22:22 横刀天笑 阅读(...) 评论(...) 编辑 收藏

混乱的代价

只要你干过两三年编程,就有可能曾被某人的糟糕代码绊倒过。如果编程不止两三年,也有可能被这种代码拖过后腿。进度延缓的过程会很严重。有些团队在项目初期进展迅速,但有那么一两年的时间却慢如蜗行。对代码的每次修改都影响到其他两三处代码。修改无小事。每次添加或修改代码,都得对那堆扭纹柴了然于心,这样才能网上扔更多的扭纹柴。这团乱麻越来越大,再也无法理清,最后束手无策。

随着混乱的增加,团队生产力也持续下降,趋向于零。当生产力下降时,管理层只有一件事可做了:增加更多的人手到项目中,期望提升生产力。可是新人并不熟悉系统的设计。他们搞不清楚什么样的修改符合设计意图,什么样的修改违背设计意图。而且,他们以及团队中的其他人都背负着提升生产力的可怕压力。于是,他们制造更多的混乱,驱动生产力向零那端不断下降。

华丽新设计

最后,开发团队造反了,他们告诉管理层,再也无法在这令人生厌的代码基础上做开发。他们要求做全新的设计。管理层不愿意投入资源完全重启炉灶,但他们也不否认生产力低得可怕。他们只好同意开发者的要求,授权去做一套看上去很美的华丽新设计。

于是就组建了一支新军。谁都想加入这个团队,因为它是张白纸。他们可以重新来过,搞出点真正漂亮的东西来。但只有最优秀、最聪明的家伙被选中。其余人等则继续维护现有系统。

现在两支队伍在竞赛了。新团队必须搭建一套新系统,要能实现旧系统的所有功能。另外,还得跟上对旧系统的持续改动。在新系统功能足以抗衡旧系统之前,管理层不会替换掉旧系统。

竞赛可能会持续极长时间。我就见过延续十年之久的。到了完成的时候,新团队的老成员早已不知去向,而现有成员则要求重新设计一套新系统,因为这套系统太烂了。

假使你经历过哪怕是一小段我谈到的这种事,那么你一定知道,花时间保持代码整洁不但有关效率,还有关生存。