代码整洁之道:程序员的职业素养
作者:(美)罗伯特 C. 马丁(Robert C. Martin)
译者:余晟,章显洲
这是一本风趣幽默的关于程序员的故事书,这本书让我在专业技术之外,了解了更多程序员应有的能力和素质。
引言摘抄:本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。
第一章 专业主义
什么是程序员的专业主义?
- 担当责任,要对自己的错误负责。
- 不要破坏软件功能,让 QA 找不出任何问题,确保代码正常运行。
- 不要破坏代码结构,不可维护的代码显而易见的不专业。
第二章 说“不”
“有可能写出好代码吗,有可能坚守专业主义精神吗?”
你有没有遇到过在规定时间一定做不完的需求?在面对需求讨论的时候,我们和产品(或者说项目组,总之是发布任务的人)会形成一种对抗关系,这时候一定要坚持自己的观点(写不完就是写不完,不需要为此羞愧)。
在对抗过程中,事实要比 “为什么” 更重要,对方不一定有足够的技术水平和良好的脾气去倾听我们的想法。我们可以去更多的了解最核心需求,在有限的时间里做好最重要的事情。
对待不合理的需求时间,一定要坚决“不”。对项目中自己的工作有一个坚定的评估,是一种团队精神。千万不要给出犹豫不决的试试看,人总是会偏向更好的想法,对更差的可能视而不见。试试看对领导来说也是一种未尽全力的表述。而且在试试看的过程中为了尽快完成任务,很可能采取会复制粘贴、胡乱起变量名等等会破坏程序长久性的做法,维护的痛苦和成本都是潜在的工作量,并且会给领导留下这个人没有能力写出好代码的印象。
“是的,但你要学会如何说 ‘不’ ”。
第三章 说“是”
“口头上说。心里认真。付诸行动。”
-
缺乏承诺的征兆
需要(我需要减肥了。)
应该(我应该能成功吧。)
让我们(而不是让我,让我们把这事做完。)实际情况中,不仅我们同事,我们自己也会陷入类似的词语陷阱。只要认真搜寻,你会发现所有人都有竭力逃避责任的倾向。识别这样的言语,已经迈出了第一步。
-
真正的承诺
“我将在……之前……”(我将在周二之前完成工作。)
做出承诺之后,我们就要继续下面两个步骤了 “言必信,行必果” 。
很多时候,我们是有借口不能完成承诺的。下面是一些常见的原因和解决方式:
1. 之所以没有成功,是因为寄希望某某做这件事情。
只承诺自己能完成的事情。如果自己的任务必须需要合作,那么可以承诺一些具体行动。比如:
2. 之所以没有成功,是因为我不确定能不能完成。
即使目标无法完成,仍然全力以赴,缩短和目标的距离。
如果