避免过早的优化
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. (Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268.)
避免过早的优化是编程中的一个观点,但是本文却是关于做事的。对程序员来说追求细节上的性能优化往往是得不偿失的,一些代码即使性能差一些也不会对整体的性能产生影响,真正重要的是系统中调用最频繁的热点部分才值得优化。这个观点也适用于做事。
我们总会希望事情变得越来越简单,简单到一个命令就可以自动化一件工作。但是这个自动化是需要成本的,在简化一件事情之前我们首先要明确这件事情是否值得简化。如果同样的问题反复的出现,在你的工作中持续的带来不爽的感觉,那么这时花一些时间去解决这个问题就是必要的。但是如果问题只是偶尔的出现,那么短暂的不方便即使忍耐一下也没什么。
这个感悟是在配置gvim的时候想到的,一开始我花了很多时间去安装各种各样的插件,学习了他们的用法,解决一些问题。不过我甚至都还没有大量使用vim的经验,所以那些插件是否真的对我的工作都有帮助。用掉的时间是否都物有所值还是未知数。就像firefox的插件一样,一开始处于好奇,尝试了很多插件,最后使用的只是其中的一小部分。
这个道理可以扩展到很多地方。比如项目的管理,那些方面是需要迅速解决的,那些是可以忍耐的。追求简单的生活但又不过分,不让这种追求成为一种不划算的负担,才是明智的做法。