程序员修炼之道:从小工到专家读书笔记
注重实效的哲学
注重实效的程序员对他的职业生涯负责,并且不害怕承认无知或错误,如果你确实同意要为某个结果负责,你就应切实负起责任。当你犯错误、或者判断失误时,诚实地承认它,并设法给出选择。如果存在供应商不能按时供货的风险,你应该预先指定一个应急方案。如果磁盘垮了,带走了你所有代码,如果你没有备份,那就是你的错,无异于告诉老板“我的源码让猫给吃了”。因此,我们应该对自己的职业生涯有所负责,任何事都准备好充足的应对方案,只有能够应对各种突发状况都有相应解决方案,那么我们才是一个负责的程序员。
软件的熵,熵是一个来自物理学的概念,指的是某个系统的“无序”的总量。热力学定律保证了宇宙的熵倾向于最大化。当软件无序增长时,称为“软件腐烂”,不要留着“破窗户”(低劣的设计、错误决策、或者是糟糕的代码)不修。发现一个就修一个。如果没有时间修理,可以将出问题的代码放入注释里面,或者标注"未实现",这样在最后的修改或者分析遗留问题时,都对我们有很大的帮助。
学会灭火,如果你发现你所在团队和项目的代码十分漂亮(编写整洁、设计良好、很优雅)——你就很可能会格外注意不去把它弄脏。就和消防员一样,即使有火在咆哮(最后期限、发布日期、会展严重等等),你也不会像成为第一个弄脏东西的人。注重保持代码原有美观,注重代码设计整体观。
大多数软件灾难都是从微不足道的小事开始的,大多数项目的拖延都是一天一天发生的。系统一个特性一个特性地偏离规范,一个又一个补丁被打到某段代码上,直到最初的代码一点都没有留下。学会小事立即解决,不能养成拖延的习惯,不要被温水煮青蛙那样,从一开始的不重视,到最后演变成了不可挽救的局面。