破窗效应与童子军军规

最近经常会思考为什么一个软件项目会越来越难做,越来越重,越来越难以修改。突然想起之前看过一个关于“破窗效应与童子军军规”的文章,搜出来,给大家分享下,也许可以解决我们的一部分问题。

首先注明文章出处:http://blog.csdn.net/lingyun2005/article/details/5623666

首先让我来解释一下这两个词,尽管看起来二者之间没有什么必然联系。
破窗说的是,一个小区,本来干净整洁,没有犯罪事件,大家安居乐业。然而,忽然有一天,一个窗子被打破了,但是没有人管。接下来,不好的事情接连发生,显示有人乱扔垃圾,接下来是随地大小便,整个环境变得脏乱差,随之而来的就是打架斗殴事件的出现,最终导致出现犯罪的事件。也就是说,一件很小坏事儿,如果不加控制的话,也会演变成严重的事件。
童子军军规我是从Bob大叔(Robert C Martin)那里知道的,童子军军规中有条规定,当你离开一个地方的时候,要让它比你来的时候更整洁干净。这样的话,童子军扎营的地方会越来越干净。
大家应该看出二者之间的关系了,其实很简单,前者意味着恶性循环,而后者意味着良性循环
在我们的开发过程中,同样存在着这样的问题。
我在工作的时候,经常会修改别人写的程序,其实这也是作为程序员经常要做的一件事儿。而由于最近一年多修改的都是国内的软件公司开发的程序,大家也知道在国内开发的过程中,有很多时候,为了赶进度,对于代码规范的遵守会很差,所以经常会遇到比较乱的程序代码,现象主要体现在这样几点上:
1、最过分的一点,代码没有进行合理的缩进。这种代码一看就是复制粘贴过来的。
2、不合理的命名
3、过长的过程和函数
4、魔法数字,过多的标识弄的人晕头转向。
在无意识的情况下,处理这种代码的方式也和我的心情有关,呵呵。
如果心情很差的时候,可能是由于业务部门一个劲儿地催促,或者休息不好等等原因,我可能也会不管不顾,也去复制粘贴一堆代码,然后只要能够解决问题就好,在页面上如果可以侥幸通过,就提交代码,万事大吉。
如果心情平静的时候,这时应该属于平静的阶段,我会注意自己的代码规范,比方说格外编写一个过程或函数,在需要的地方简单调用,而不是再加长原来的代码。对于自己的代码缩进,也保证一个Tab或者四个空格的空间。命名必须有意义,且表示的是正确的意思等等。但是不会管原来的代码,让它们继续乱着去吧,后来人会比较之前的代码和后来的代码的,哈哈。我可是在自己的代码附近签上自己的名字了。
如果心情很好的时候,我会清理原来的代码,在修改代码之前先把所有不符合规范的地方修改一遍,比方说缩进;比方说命名。然后将代码重构,把长过程修改为维护性更好的短过程。一切完毕之后,再去修改代码,真的是心情越来越愉快,最后修改问题花费的时间也会很少。
回想一下自己的三种情况,抛去中间的不算,第一种正好符合的是破窗理论,而第三种符合的则是童子军军规。
其实,有些时候真的不能仅仅凭借心情来做事,如何来对待原本可能会有些问题的代码,也是作为程序员的一种素质吧。试想一下,如果团队中的每个人都按照破窗理论的形式做事,那么用不了多久,系统就会变得不可维护,这恰恰是陷入了恶性循环;反之如果大家都能够遵守“童子军军规”,那么代码的质量会越来越高,稳定性和可维护性会越来越高,良性循环会让我们大家每天都有好心情。
经常会有人说,作为程序员一定要有团队精神,但这种精神并不是说说而已的,需要实际的行动来体现的。而上述的两种做法恰恰也可以反应出一个团队成员是否具备良好的团队精神。
遵从破窗理论的成员,就是没有顾及整个团队的利益,只顾自己的进度和工作量,不仅不改善代码,反而不断地让代码中的问题增多,这样怎么能说是有团队精神呢?
而遵守童子军军规的成员,他们是把整个系统的代码都看成是自己的代码,自己的利益是与整个系统的质量相关联的。他们努力改善所看到的有问题的代码的质量,表面看来对自己没有太大的好处,反而有时候可能会让自己的进度稍稍后延,但是如果整个团队都这么做的话,那么在不久之后就会体会到优质的代码给整个团队带来的好处。他们正是具备了非常不错的团队精神。
所以,想要做一个优秀的程序员,应该遵守童子军军规,而不是将破窗情况越变越严重。

作为一个测试人员,我想聊的是文章中的一句话:

如果**心情很差**的时候,可能是由于业务部门一个劲儿地催促,或者休息不好等等原因,我可能也会不管不顾,也去复制粘贴一堆代码,然后只要能够解决问题就好,在页面上如果可以侥幸通过,就提交代码,万事大吉。

实事求是的说,我在以往的测试过程中发现这类问题是很多的,甚至有“侥幸”都通不过的问题就直接提测了。其实,我非常能理解开发过程中的各种压力,如项目进度的压力,任务量的压力,各方问题的压力等。但是,这些压力如果我们一直以来都是含糊过关的话,就会像上面文章所说的变成恶性循环,本来上次可以解决的问题被含糊的workaround代替了,但是在下次的开发中变成了一个无法再逾越的大坑,导致效率的骤然降低,因为这次你要处理的不再是这次遇到的问题,而是从上次就累积下来的一大顽疾。所以,当遇到问题的时候,不要含糊的避过它,而是要彻底地解决他,没有时间,有项目压力可以去找项目经理好好谈,相信在高性价比的问题面前任何一个决策者都是可以理解的,没有沟通解决不了的事情。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,127评论 25 707
  • 破窗理论最初是犯罪学的一个理论,认为环境的不良现象如果被放任存在,会诱他人效尤,甚至变本加厉。以一幢有一扇破...
    知猪侠_DC阅读 2,915评论 2 51
  • 追了一月新番人渣的本愿,才知道原来我是和茜一样的人。游戏人生,只想玩乐,不想担负任何责任。好的东西竭尽所能去占有,...
    枯藤子阅读 128评论 0 0
  • 这个系列主要是给大家介绍整个互联网产品的构建、产品研发的过程。 1. 产品的形态 既然我们要跟大家去介绍整个互联网...
    马力_可能性与大设计阅读 2,181评论 0 19
  • 今晚的北京湿透了 🍁 天刚摸黑 所有人都还在炎热的烦躁之中 突然,一声响雷 打破了这不寻常的宁静...
    雨古胜利阅读 144评论 0 1