代码的兔子理论
-
原文地址(original source):http://www.nczonline.net/blog/2015/05/14/the-bunny-theory-of-code/
-
作者(author):https://twitter.com/slicknet
曾经和我一起共事的人都知道,我把源代码库的签入工作摆在非常高的位置。这样做的理由很简单:一旦代码被签入了,代码就有了它自己的生命。签入代码类似于你和其他人分享代码,一旦分享出去,就难以预测这些代码会发挥什么作用。很难,但不是不可能,因为有一种现象实际上是我保证要出现的。
多年来,我和朋友、客户分享过我所谓的、代码的兔子理论。这个理论是指,当你没有留意时,代码会繁殖,同样,当你没有留意时,兔子也会繁殖,二者没有什么不同。这不是说繁殖代码是好的,还是坏的——不管质量如何,这是所有代码的特点。使其优劣的是那些被繁殖的代码。
支撑 代码的兔子理论 的原因在于软件工程师的工作方式。我们很少,倘若有的话,从一个完全空白的文件开始写代码。我们通常从拷贝一个现有文件开始,随后修改以得到我们想要的结果。重申,这和好与坏无关,它仅仅是创建类似于其它代码的某种代码的、最有效方式。
那么,你从哪里去寻找能拷贝的已有代码呢?在同一个源代码库里。你的源代码库虚假的承诺是,它包含的每处代码都是“好的”。为了完成你的任务,就找到类似的代码、拷贝、修改,然后搞定。深入同一个代码库,貌似是代码质量的一种安全机制,但是实际上,这是无法保证的。
当你签入一个文件时,另一个相似文件的出现是不需要太长时间的。一旦出现了同样代码的两个例子,那么第三个文件出现的机会就增加了。一旦第三个出现了,代码就在你的代码库建立了基础,并被视作一种认可模式。毕竟,如果我们在很多地方都在用这种方法做着同样的事情,那么它一定是做这种事情的正确方法……对吧?
...