“旁观者效应”是如何毁掉我们的代码的

开发 开发工具 后端
1964年,纽约昆斯区,28岁的Kitty Genovese在经受了长达35分钟的性侵犯后最终被谋杀致死,共有38个本地区人性正常的居民经过,但没有一人提供帮助。

1964年,纽约昆斯区,28岁的Kitty Genovese在经受了长达35分钟的性侵犯后最终被谋杀致死,共有38个本地区人性正常的居民经过,但没有一人提供帮助。

旁观者效应

[[99465]]

图片来源: Abu Badali, CC 2.5, via wikimedia

这个故事例证了‘旁观者效应’中的一个不幸的心理特征:援助的几率与旁观者人数成反比。旁观者数量越多,他们当中任何一人进行援助的可能性越低。

作为程序员,我们几乎每天都能看到“旁观者效应”在起作用。如果你的代码库已经有了相当的体积和年月,你很可能知道它们会存在一些问题,比如缺乏封装或模块分离,类继承结构过于复杂,方法太长——读起来就像是Stephen King最近写的小说,未经测试或无法通过测试等等——但没人想去做点什么。

“旁观者效应”的问题根源

问题的根源是缺乏物主(所有者)身份。我们总是在假设别人会来修补这些问题。如果这些问题出现在我们的代码库中,我们很可能对之无动于衷,因为“这事儿跟我无关”。程序员对这样的问题通常的反应:这是别的程序员造成的问题,我才不管呢。这种“这事儿跟我无关”的态度很流行。

可是,这事儿事实上跟你有关。

外差因素(Externalities)的负面效应

经济学上有个词叫做“外差因素(Externalities)”,它形象的描绘了这样一个情况:A人从某件事情上获利,但B人却要为此买单或部分的买单。你作为B人,免不了会遇到要去修改A人所写的恐怖的类代码。你以为这个类应该是经过精心设计的,你以为它们都有相应的功能测试代码。但事实上,你为了一个小小的修改做了大量的工作。你的老板会奇怪,这样一个简单的任务为什么需要这么多的时间。别人犯下的愚蠢错误最终却要你来擦屁股——这就是“外差因素(Externalities)”的负面效应。

培养物主身份

纠正“外差因素“的负面作用的方法很简单:接受问题的所有者身份——不论问题是不是由你造成的。为什么要在意这个问题是谁的责任呢?造成这些问题的人很可能早就不知去向了。还在等待他们来修改这些问题吗?你永远都等不到。我们应该这样去想:除了我,没有人会来修改这些代码。

一旦你这样做了,一种所有者的身份就开始出现了。当你花了很大的功夫修改好了这些问题,而问题再次出现时,这些问题自然归你所有了,因为你为它们付出了汗水。

这样一来,我们就会开始”义务“的改进我们的代码库。你打开一段有问题的代码,你忧心忡忡的研究它,你忧心忡忡的心情很快云消雾散了,因为你发现有另外一个”圣人“已经把它修复了——多么美好的世界呀!这样的事情之所以能发生,是因为每个人都找到了自己的责任感。这是最美好的时刻。

行动起来!马上!

感觉如何?在接下来的一周里找一天时间,翻出一段代码,就当是走错了路,拐进了一条本不想走到胡同,修改一下。提交你的修改,并附加这样的注释:

  1. /*   
  2. JKH 09/12/2012 - 重构了有问题的事务处理。如果这是你喜欢的,请将此做法传递!  
  3. */ 

英文原文:How the Bystander Effect is Ruining Your Code

译文链接:http://www.aqee.net/how-the-bystander-effect-is-ruining-your-code/

责任编辑:林师授 来源: 外刊IT评论
相关推荐

2020-01-30 18:05:24

人工智能技术投资

2010-08-03 09:48:42

PythonRuby

2020-02-14 09:00:28

开源Cloud Found平台

2023-03-21 17:06:24

树莓派路由器

2013-11-04 09:39:16

程序员信仰

2022-01-12 10:57:59

网络

2021-07-26 14:54:56

互联网小米京东

2021-02-25 23:31:50

加密货币比特币货币

2021-11-09 09:19:13

PHP网站代码

2022-07-05 21:53:26

记录图片WebP

2023-05-31 11:35:41

数字化转型

2023-06-08 00:12:39

2009-06-29 17:49:48

2015-04-01 13:15:04

2017-12-21 14:36:10

大数据健身智慧

2022-07-29 07:58:34

思维能力技术人抽象能力

2022-04-19 08:14:59

技术人加班领域

2022-03-28 07:51:17

Java代码JVM

2019-01-10 10:07:15

苹果高通中国手机

2012-12-10 15:12:43

点赞
收藏

51CTO技术栈公众号