洁癖

处女座到人给人最大到感受大概就是洁癖。扭头看看看自己到窝,却完全没有处女座到风范。其实,对于许多处女座来说,这种洁癖是精神上的。对于我来说,代码就是精神的一部分。

自从接手小卡的代码之后,就开始了清扫过程。从最开始的注释,到变量名,到函数,到结构成员,到整个调用流程都进行了修改。随着版本号到增长,渐渐得已经没有哪块代码没有被修理过。虽然仍然有许多地方要改,而且剩下了许多难啃到硬骨头。至少在我眼里,代码已经干净了许多。

改了那么多,是因为我的水平比小卡高很多么?否也。罗马不是一天建成的,代码也不是一天写成的。软件的功能,是一块一块摞上去的。软件的功能,是一步一步提出来的。上有老板的期限,下有测试的 Bug。天天加班敢进度,谁还有心思关心代码质量? 基本上新增的功能都会采取尽量不影响原有功能到前提下增加。这种方式往往使代码越走越乱,几乎所有到软件都会经历这一过程。

时间、功能和代码质量三者无法同时存在。开源软件一般宁可牺牲时间,也一定保证代码质量。而公司里的软件,往往牺牲代码质量而保证工程进度。因为老板只能看到工作有没有完成,而很少关心代码质量。殊不知,当前到代码质量,将会大大影响未来到进度。当前的工作靠补丁的方式完成,未来再增加功能会更加困难。直到有一天,即使增加一个很小的功能,也会需要很多时间。即使修改很小的一部分,也会影响整个程序到运行 —— 程序混沌了。

所以程序需要不断的重构,而且这种重构必须由不同的人来完成。原因:人会审美疲劳。也许刚开始看着代码很丑,不断想方设法去修改。渐渐得,已经从潜意识里面知道那些怪异变量名的作用,理清了混乱到调用方式。特别是自己的代码已经成为混乱一部分的时候。这,正是结对编程,交叉审阅的意义所在。并不是编程水平不够,而是因为人的心理有缺陷。

拿我的窝来说,所有的东西,都是我放的,等想收拾的时候就想,这东西不放这还能放哪? 所以屋子再乱,我总能够找到指甲剪,直到有一天,小倩把它从板凳放到桌子上。