在所有弱点中,最大的弱点就是害怕暴露弱点

  开篇第一句话,很醒目,对于一个开发者来说,这应该也是一个谁也攻克不了的难题,确切的说,其实这句话不仅限于开发者,全人类这个问题都是无法得到很好地解决的,但是我们却可以通过各种手段,慢慢修正自己的弱点,接受别人对自己的弱点指责,习惯弱点是可以通过学习和经验弥补的。

  负责:提供各种选择,不找蹩脚的借口

   对于一个技术难题,或者说自己犯了一个致命的错误,我们不应该把责任推卸到这个问题很难,我无法解决或者这是需求没有落实清楚,所以我做的软件有很大的偏差。至少我遇到过需求落实不清,而到最后又要重新做的项目,并且还有其他项目介入,无法在正常合理的时间去修改之前的错误,结果,两种选择,推脱责任,不干我事,加班加点干完,心安理得;我选择了后者,自己的项目,不能因为一些别人的疏忽,而把你做的软件让别人说闲话,咱不干这事,毕竟软件是我设计的,我要对自己的软件负责;

     原书中也举了我的源码让猫给吃了的例子,不能因为磁盘坏了,你就说源码让猫给吃了,而不自责是自己没有做及时的备份

  软件的熵:

  熵的定义:是指某个系统中“无序”的总量。当软件无序增长时,我们通常叫他“软件腐烂”。

  造成原因:

  一、破窗户:

  一个完美的楼,因为有一扇破窗户有一段时间不修理,就会给人带来废弃感,于是又有一扇窗户破了,紧接着,开始有人乱丢垃圾,乱涂乱画,严重的结构损坏开始了,在相对较短的一个实践中,废弃就变成了事实。

  “破窗户理论”也启发了一些城市的警察,他们对一些轻微案件的严办,防止大案发生。

  在软件开发中,也是一个道理,不要容忍破窗户,发现设计不合理,或者bug就要及时修正,没有时间修理也要用木板订起来(在不影响逻辑的情况下,注释掉或者标记上todo),不然一旦窗户开始破裂,将会逊色的恶化,如果你继续想,没有时间去修复这些破窗户,那么最后的结果就是“软件腐烂”。

  二、灭火:

  作为破窗户的对照,书中讲了一个富人家着火的故事,当灭火队员进屋准备灭火的时候,看到走廊铺着奢华的地毯,火在怒吼,但是他们却止步了,不想弄脏地毯。

  在软件开发中,当你的项目出现了破窗户时候,你也许会想,这段代码其余部分肯定也是垃圾,我照做就行了。项目在之前一直很好,但是被戴上了破窗户帽子,那以项目肯定会“软件腐烂”。反之,如果一个代码设计非常漂亮,你可能不想成为第一个弄脏他的人,那么这个软件只会被修正的越来越完美,当然这个也要和第一条负责联系起来。

有一部电视剧最近很火,“战雷”一群工兵在雷场排雷,这个活挑战了人类的极限,包括耐心,细心,还有心理素质,但是也是一个团队精神的体现,那么,团队精神需要的是什么,需要的就是整片提到的责任,对一件事情负责,对一个人负责,排雷是个耐心细致的活,一旦出危险,有可能涉及到整个工兵排,一个雷没扫出来,有可能毁的是一个团一个师,而软件开发也是这个道理,你的一个错误,有可能导致整个项目的崩溃,你的一个不谨慎的修改,有可能导致“软件腐烂”,所以说做什么事情都是一样的,只有自己对自己负责,才能把事情做好,把软件做好。

posted on 2013-06-27 17:44  diorlv  阅读(1560)  评论(1编辑  收藏  举报