最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 开发技术 > 移动开发 >
旁观者效应对代码有哪些不良影响?
IT168发表于 2020-11-26 11:24 次浏览
    在生活中,我们都是自己世界的主角,但是在这个多元化的社会,旁观者才是重要的组成部分,就像苏东坡效应中提到的“不识庐山真面目,只缘身在此山中”,旁观者的重要性可见一斑,旁观者效应又被称为责任分散效应,简单的来说就是指当发生某一件事情时,单个人的责任感更强,而集体中的个人责任感最弱,因为在集体中往往会期待别人承担责任,遇到困难会退缩,但是单个人时,由于没有人可以依靠,就会表现的很有责任感。
 
 
    这在社会事件发生时,就一直被不断的验证,从1980年开始,就有60多个实验研究,结果90%的实验结果都是独自一人时更能为他人提供更多帮助,而且随着旁观者数量越多,受害者被帮助的可能性就越小,但是人们往往不自知,实验过后被问询时,大部分人都说自己和单独一人时的表现是一样的。

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



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

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

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

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

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

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

  培养物主身份

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

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

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

  行动起来!马上!

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

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

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐