小姜哥的微信

遗留代码-有感于程序员漫画

本来没打算写这篇文章,后来看到了下面这幅漫画,还是写写吧,纯属自娱自乐。

20131109152621093.jpg

刚毕业那会儿在一家创业公司工作,做我那块工作只有两个人,从0开始做起,不受遗留代码的困扰。

大半年后公司关门,于是去了另外一个A股上市公司,刚好赶上项目起步阶段,承蒙项目负责人信任成为了项目组的核心成员。由于是核心成员所以对项目有话语权和很大的决策权,对项目相当熟悉,有那种如数家珍的感觉。又因为熟悉,所以我能大刀阔斧的来做任何事情,自己清楚的知道自己的修改会对哪些地方产生直接或间接影响,做到透过现象看本质是没问题的。我一直认为同样的技术每个人的理解不尽相同,直接导致了在项目中的表现形式不同,有的时候甚至是后来人根本无法理解的,这也凸显了文档及注释的重要性。所以我会在核心代码中写大量的注释,之所以这样做原因有二,一是方便以后自己看代码,二是方便后来人。对于处于开发后期的代码我更愿意用注释代替删除(开发后期项目已经成型并且代码相对稳定,主要做一些细节调整),比如某个属性是多余的,存在的话会导致一些问题,我会将该属性注释掉并写明会导致什么样的问题,比如“该属性多余,若存在将导致子节点顺序错乱”。

没有文档和注释维护遗留代码是非常艰难的(尤其对于JavaScript这类动态语言),因为你不知道当时什么情形,你不知道当时为什么这么做,你不知道当时的程序员是怎么想的,你更不知道你的修改会有什么样的影响,所以很多维护遗留代码的人选择了if。你可能连程序中看起来显然多余的代码都不敢清除掉,因为你不知道在什么情况下那段代码有用,你也不知道删掉会给你带来什么,也许是通宵的加班。这样的话代码会越来越无法维护,最后的最后只能重新开发。

推荐文章

回到顶部