代码整洁之道--读书笔记(3)

代码整洁之道

简介:

本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。

本书适合所有程序员阅读,也可供所有想成为具备职业素养的职场人士参考。

第三章:说“是”

如果你能够一直信守承诺,大家会以为你“是一名严谨负责的开发人员”。

在我们这行中,这也是最有价值的评价。

3.1 承诺用语

口头上说;心里认真;付诸行动;

这也就是承诺的三个步骤:

(1)口头上说自己将会去做。

(2)心里认真对待做出的承诺。

(3)真正付诸行动。

3.1.1 识别“缺乏承诺”的征兆

我们有竭力逃避承担责任的倾向。

注意以下三种类型的词,当他们出现时候你就要警觉自己不必把此承诺太当真。

  • 需要/应当。“我们要把这活做完。”“我需要减肥。”“有人应当负责去推动这件事。”
  • 希望/但愿。希望明天我能完成这个任务。”“希望改天我们能再见面。”“但愿我有时间做这件事。”“但愿电脑能快点。”
  • 让我们(而不是让我)。让我们回头再见。”“让我们把这事做完。”

3.1.2 真正的承诺听起来是怎样的?

寻找相似的句子:我将........之前............

你对自己将会做某件事做了清晰的事实陈述,而且还明确说明了完成期限。

那不是指别人,而是说的自己。你谈的是自己会去做的一项行动,而且,你不是可能去做,或是可能做到,而是必须做到。

到了所到时间之后,面临两个结果,要么完成,要么没完成。

如果你没做到,他人就能摆出你先前的承诺让你难堪。由于失信于人,你会感觉很糟糕。告诉别人自己没能兑现承诺时,你会感到十分难堪(如果那人曾当面听你做出承诺的话)。

作者在这里还说明没能信守自己的承诺的潜在想法,并且给出对应的应对方法。

  1. 之所以没成功,是因为我寄希望于某某去做这件事。

    原因:你只能承诺自己能完全掌控的事。比如,如果你的目标是完成一个还依赖于另一团队的模块,那么你无法承诺自己既能够完成这个模块,还能实现该模块与其他团队所负责模块间的无缝集成。

    应对方法:如果最终目标依赖于他人,那么你就应该采取些具体行动,接近最终目标。

  2. 之所以没成功,是因为我不太确信是否真能完成得了。

    应对方法:即使目标无法完成,你仍能全力前进,离目标更近些。

    例如:

    • 把这25个bug全部过一遍,努力重现这些bug。

    • 和发现bug的QA一起坐下来,看下bug重现时的现场。

    • 用本周能支配的全部时间,尝试逐一修复bug。

  3. 之所以没成功,是因为有些时候我真的无能为力。

​ 应对方法:如果你无法兑现承诺,那么最重要的就是尽早向你的承诺对象发出预警,越快越好,越早越好。

​ 这里有一点要注意:

如果你不尽早告诉他人可能的问题,就错失了让他们帮助你达成目标、兑现承诺的机会。

3.2 学习如何说“是”

坚持原则

如果不写测试,他或许可以更快点完成任务。如果不做重构,不运行整套回归测试,或许也可以快点完成任务。此时,如果是专业开发人员,就不会放弃底线。

首先,这种假设本身就是错误的。即使不写测试,不做重构,省掉完整的回归测试,Peter也无法更快完成任务。多年经验告诉我们,打破这些纪律和原则,必然会拖慢进度。

其次,身为专业开发人员,Peter有责任根据标准规范自身工作。代码必须经过测试,代码必须要有对应的测试代码。要确保代码清晰整洁,而且必须确保没有影响到系统的其他部分。

如果要“加班”,就需要考虑自己的经理储备,口头上说自己会在周末搞定这些事情很容易的,但要真正花精力高质量地完成工作会困难许多。

专业人士对自己的能力极限了如指掌。他们十分清楚自己还能保持效率加班多长时间,也非常明白要付出的代价。

总结

专业人士不需要对所有请求都回答“是”。不过,他们应该努力寻找创新的方法,尽可能做到有求必应。当专业人士给出肯定回答时,他们会使用正式的承诺,以确保各方能明白无误地理解承诺的内容。