程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?

程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?

文章图片

程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?

文章图片

程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?

公司曾经发生一个有趣的事情 。
01首先介绍一下我曾经的公司代码 , 大概5年前 , 公司要升级gcc代码 , 试试转docker , 放到云环境上去 , 然而这批代码在2000年的时候就有了 , 最早的部分可能写于1980年代bell实验室 , 第一批维护升级做需求的人早就退休了 , 第二批也退休了 , 每一行代码动起来都胆战心惊 。

然后老张那天上班忽然大叫起来 , 大声质问谁改的代码 , 这么明显的bug都能出 , 还不写注释 。
由于是生产出现了重大事故 , 不然老张也不会那么生气 , 系统内存泄漏 , 系统崩了 , 影响客户使用 。
当时项目经理就发话了 , 你查一下git的提交记录 , 看看是谁提交的代码 , 查出来全公司通报 , 扣他年终奖和项目奖金 。

然后老张说了一句 , 看起来很生气 , 说 , 我已经在查了 。
大概过了几分钟 , 只听见老张说:不可能吧 , 这怎么可能呢?
于是项目经理就凑上去看 , 发现这段代码是这老张一年前自己提交的 。
当时的老张别提多尴尬了 。
很难想象 , 这个项目的代码会有多狗屎 , 资深程序员动了之后竟然不知道是自己写的 , 那么其他程序员谁还敢动?
02然后老张被全公司通报批评 , 要求项目组整改 , 并且出检讨 。 现在你们能理解了吗?代码能跑 , 就不要改 , 你改了说不定会出什么幺蛾子 。

改代码不是一个人的事情 , 而是开发测试共同的工作 , 能跑起来的 , 能跑起来代码即使看起来有多混乱 , 也是经过专业测试通过的 。 而你改过的代码 , 短时间无法经历旧代码那么充分的测试 。 就可能存在暗病 。 除非公司决定重构代码 , 才能去动 。

并且 , 能跑起来就不要动的代码 , 一般都会被我们称为屎山一样的代码 , 相信我们都有着被屎山支配的恐惧 , 被困在屎山受屈辱的经历 , 驾驭屎山的唯一方法 , 不是改动 , 而是不改动 。

我想说的是 , 如果你的代码能跑 , 但你不知道它为啥能跑 , 你还是不要提交这种代码了 , 搞懂了再提交 。 之前有个同事写了个代码 , 功能是为容量为1000的某个服务器的用户分配一个唯一的ID 。 他的做法也很简单 , 也能跑?但上线后 , 这个服务器的在线用户数大约在800-900左右 , 会大概率导致服务器宕机 。 看了他的做法 , 是在1-1000里随机取个数字 , 如果这个数字有人用了 , 随机换个数字 , 再判定是否有人用 , 如此重复 。 当用户数多了 , 分配新ID时 , 就会频繁撞ID , 就很难跳出那个循环 。
【程序员|为什么程序员会有代码能跑就不要动的观点?是有毒吗?还是怎样?】所以 , 代码跑起来就不要动了 。