《程序员修炼之道:从小工到专家》第一章:注重实效的哲学(1)

本系列为学员君两年前阅读《程序员修炼之道:从小工到专家》的读书笔记,分享给大家。

一、“我的源码让猫吃了”

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

负责

提供各种选择和解决方案,而不是找各种蹩脚的借口。

在做一件事情之前,先做好风险评估,哪些是在自己控制之下,哪些是自己不必要承担的风险,不要害怕或羞于承认自己需要帮助,不要害怕提要求或者额外的资源,并且尽可能对各种情况作出预估,并设计好容灾和备份,做出决定之后,需要确保事情正确完成,事情不一定按照既定轨道发展,出现偏差,要敢于承担,找到各种解决方案,而不是抱怨,找各种借口来推脱责任,告诉老板自己的源码让猫吃了。

做一个勇于承担后果,出问题后提供各种解决方案,而不是抱怨,推脱的程序员!

二、软件的熵

不要容忍破窗户

破窗户理论

一扇破窗户,只要有那么一段时间不修理,就会渐渐给建筑的居民带来一种废弃感,于是又一扇窗户破了,人们开始扔垃圾,乱涂乱画,严重的结构损坏开始了,在相对较短的一段时间内,建筑就被损毁的超出业主愿意修理的程度,于是废弃感变成了现实。

“破窗户理论”启发了警察对一些轻微的案件严加处理,以防止大案的发生。

在软件工程领域,同样如此,不要留着”破窗户”(低劣设计、错误决策、或者糟糕的代码)不修。发现一个就修一个,如果没有足够的时间去进行适当的修理,也要用木板钉起来,或者放入注释说明问题所在。采取某种方式阻止进一步的损坏,并说明情势在你的控制之中。

一扇破窗户—一段低劣的代码、团队必须在整个项目开发过程中加以忍受的一项糟糕的管理决策—就足以使项目开始衰败。这是因为如果你发现自己在好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了”,项目在这之前是否一直很好,并没有什么关系。

按照同样的道理,如果你发现你所在的团队和项目的代码十分漂亮—编写整洁、设计良好,并且很优雅—你就很可能会格外注意不去把它弄脏,成为第一个制造破窗户的人。

三、石头汤与煮青蛙

石头汤

石头汤的故事是鼓励吸引人们参与,从而实现团队协作做出成果,最后大家都是赢家。

在软件工程中,我们也可以借鉴士兵的思维。在实际项目,有时候我们对项目的目标和成果非常清晰,但是具体到执行时,需要别人协作完成时,每个人为了维护自己的利益和资源,会出现拖延和漠然,这个时候我们要做的,不是抱怨和放弃,而是先往汤里放三个石头,做出最初的一些设计和效果,让别人可以瞥见未来,并觉得有我参与会更好的想法,从而吸引别人的主动参与并添加你想要的功能,最终实现共赢。

煮青蛙

温水煮青蛙的故事想必大家都很了解,大多数灾难都是从微不足道的细小改编开始的,大多数项目的拖延也是一天一天发生的,最终系统的特性一个一个的偏离最初的规范,一个又一个的补丁被打到某段代码上,从而导致最初的代码一点都没有留下来,常常是小事情的累积破坏了士气和团队。

不要像青蛙一样,要牢记自己的愿景,并且逐步去实现。

阅读原文:程序员修炼之道:从小工到专家

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长