我最近一直在阅读关于“如何培养习惯”的书籍。阅读并消化之后,我不禁开始思考,目前我有哪些习惯。其中一些是生活方面的,另一些则完全关于工作。这其中有不少习惯是和编程密切相关的,这也是我接下来觉得值得和大家分享的内容。
不受控制的自动保存 – 这个习惯已经伴随着我多年了。即使如今许多 IDE 甚至不需要用户(主动)保存文件,但我任然乐此不疲地按着“Ctrl + S”这个组合键。如果没记错的话,我每次停止打字时都会无所事事,于是会不受控制地做着这样的举动。
有些开发人员喜欢将自己“处在状态”比喻成“涅槃重生”或者是到达了“瓦尔哈拉殿堂”。在我看来,这更像是一种“暴走模式”。显而易见,这是生产效率非常惊人的一段时间,但之后你应该休息片刻来调整恢复(你体内的激素水平)。就像 F1 方程式赛车一样,短时间的爆发冲刺将直接影响最终成绩,但是更重要的是要确保“ 定期的进站(休息/恢复) ”。长时间亢奋反而会让大脑麻木,从而导致更容易陷入困境。
确保隔绝所有干扰源 – 当我正在着手于非常重要的事项时,我会直接关闭手机,避免一切社交应用或者媒体的打扰。当然如果你有小孩子,那把他们锁在地下室里可能并不是一个很好的解决方案 :)。
着手工作前先想清楚预期结果 – 可视化可度量是至关重要的。它有助于我明确今天的目标清单,并且在一天结束时能减少自己“碌碌无为”而产生的沮丧和失望。所以对于任何时候你在做的事情,都先明确你预期要获得的收益。这听起来十分浅显,但实际上我们经常会遗漏这一点。
对我来说,另一个好习惯是“ 保持定期训练 ”。比如,坚持去健身就是一个非常好的习惯。我非常喜欢时不时得做一些编程练习,这可以让我时刻保持自己的锯子锋利无比。请记住,坚持这个习惯,虽然它现在不会给你带来报酬,但它一定会在未来给你巨大的收益。
“ 测试先行 ” – 这与前面提到的一点类似,先来组织并构建测试用例可以帮助我在开始之前就看到我的目的地。同时,它也能有助于设计和文档化这两个过程。但实际情况来看,很少有开发人员认同并实践这个观点。
避免过度的“ 面向未来编程 ”。之前我每次着手编程时,我总是第一天就力求完美,设计和实现上都尝试覆盖所有可能的特殊情况(edge cases)。随着时间的推移,我意识到这样常常会导致过度复杂的设计和代码实现,同时消耗更多的时间。
所以,希望你们可以有所借鉴,这些都是我在职业生涯里慢慢形成的同时非常有用的习惯。培养和建立一个好习惯的最好也是唯一途径就是开始实践它。
最后,别忘了给我也分享一些你们的好习惯!你内部人……Rr^