Avoid Premature Optimization

程序设计 Jan 17, 2020 阅读

我在一个人写程序的时候,会有个毛病,很容易钻到很小细节里,比如CSS等我不擅长的地方,然后花很多时间去解决这个问题,直接导致了我开发进度缓慢,时间久了就没有坚持做下去的耐心了。最近在改善这个问题,专注当前任务,严格按计划执行,只要不影响功能的地方,先不急于修改到完美,先把主要功能实现,确保功能可用。这样坚持了一段时间,效率提升了很多,回头再去打造细节。想想虽然这么简单的道理,实践起来却还是非常重要的。

回家路上想了想,这其实体现出一条编程原则的重要性:避免过早优化(Avoid Premature Optimization) 除非你的代码有效,否则不要考虑优化。

唐纳德 · 克努斯(Donald Knuth)的一句名言:

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.

真正的问题是,程序员花了太多时间来担心效率问题,往往都是在不对的时间不对的地方; 过早的优化是编程中所有弊端(或者至少是大部分弊端)的根源。

过早的优化代码或者把时间花在不应该耗费大量时间的细枝末节上,必然会影响效率,甚至会让你的项目垮掉。