過早優化是萬惡之源
Donald Knuth說“過早優化是萬惡之源”(premature optimization is the root of all evil)。這話也許有些誇張,但“過早優化”的危害我覺得不能忽視。
同時,我覺得“過早優化”的概念不專屬編寫程式,生活中的示例也比比皆是。不信,你看看下面這些情形你是否遇到過:
1、當你開始學一門程式語言的時候(比如c#),你想如果可以精通開發工具(比如Visual Studio)一定如虎添翼,於是一開始你就花很多時間去研究開發工具,而忘記自己學習的重點是語言本身,而非工具。或者,一開始,你花不少的時間去選擇哪門程式語言,比較各種語言的優劣,在五花八門的語言前面猶豫不決,這個想學,那個也不想放棄,結果都是學個半路子。
2、當你學習一門外語比如英語的時候,一開始,你花了很多的時間去下載有關英語資料,花了很多的時間去找英語書籍,以為有了這些資料和書籍就可以學好英文,而不是一開始就踏踏實實的從單詞、語法開始,結果後來資料下載了一大堆,書籍買了不少,卻沒有堅持下去。
3、你想搞體育鍛煉,比如打羽毛球,於是一開始你花大量時間去買球衣、球鞋、球拍等裝備,可沒連幾天,你發現自己開始三天打魚了,最後,那些裝備都起了灰,也沒鍛鍊幾次。
4、你想做時間管理(Getting Things Done),於是你研究各種時間管理的資料,上各種時間管理技巧的網站,比如lifehack、 digg 、gtdlife,下載對最流行的GTD的管理軟體,以節省時間的名義浪費時間,很浮躁,不能做到實實在在把每天的計劃都落實,拖拖拉拉。
5、你有沒有這樣的體驗,一本書你總是對開頭的部分看的最仔細,後面的章節沒堅持看下去,下次又重複這種迴圈。當你計劃做一件事的時候,總是規劃的非常完美,幾乎考慮每個細節,但卻沒有認認真真、一步一步執行,或者過早完美計劃,反而讓你縮手縮腳,猶豫不前,瞻前顧後,顧此失彼,最後虎頭蛇尾。
6、比如,如果我有了錢,我就如何如何享受快樂,比如,如果我將來有了很多的時間,我就會花更多的時間陪家人或鍛鍊…
這樣類似的例子還可以舉很多。
過早優化對大的問題在於:過早關注不重要的部分,而忽略行動和目標本身。以靜態的思維來優化,殊不知,事務發展總是動態的,“優化”是需要長期的實踐積累才可以獲得。出發點是好的,但往往好心辦壞事,折騰大量的時間,做了很多不該做的,而該做的、重要的反而沒做。強化外部條件、工具等外在,而忽略內在因素和行動本身,或者,過多期望將來,而忽略當下眼前。
活在當下,實實在在做好手頭的事,是避免“過早優化”最好的方法之一。
相關文章
- 過早引用“過早優化是萬惡之源”是所有緩慢軟體的根源 - JakeWharton優化
- Erlang那些事兒第3回之我是函式(fun),萬物之源MFA函式
- 直播預告:IT基礎設施國產化,創新是動力之源
- ORACLE SQL過濾條件是IS NULL or !=的優化OracleSQLNull優化
- 對程式語言的歧視也是一種過早優化思維的體現 - snarky優化
- Google Play超過50萬使用者下載的賽車遊戲,其實是惡意軟體...Go遊戲
- 微軟禁過愚人節是怎麼回事?微軟禁過愚人節是開玩笑還是惡作劇?微軟
- Java中萬惡的註解Java
- 是防毒軟體”失職“還是惡意軟體太”狡猾“?惡意軟體可繞過Android防護系統防毒Android
- 3萬字總結,Mysql優化之精髓MySql優化
- Oracle優化案例-儲存過程的優化思路(二十三)Oracle優化儲存過程
- JVM優化過頭了,直接把異常資訊優化沒了?JVM優化
- 萬惡資本主義觀賞記錄
- Laravel 專案深度優化過程Laravel優化
- 通過新增條件優化SQL優化SQL
- 效能優化的過程學習優化
- 過多if-else分支的優化優化
- 一條sql的優化過程SQL優化
- iOS效能優化過程淺析iOS優化
- sql 優化過程之union 替換 orSQL優化
- 避免過早的軟體抽象 - Jonas抽象
- 效能優化是個手藝活優化
- 優化MySQL,還是使用快取?優化MySql快取
- 優化MySQL 還是使用快取?優化MySql快取
- LinkedIn是如何優化Kafka的優化Kafka
- 【調優】設計問題還是優化問題?優化
- Google:2021年Play Store禁止19萬惡意賬戶 刪除120萬個惡意APPGoAPP
- 使用者數過億的QQ空間前端優化的思路是什麼前端優化
- iPhone十年進化史: iPhone是如何從幾千元賣到過萬的iPhone
- CPU視覺化:開啟計算機智慧之源的新篇章視覺化計算機
- 【效能優化之道】每秒上萬併發下的Spring Cloud引數優化實戰優化SpringCloud
- 如何優化產品開發過程?優化
- 通過hint push_subq優化sql優化SQL
- 通過分割槽進行優化(轉)優化
- 儲存過程優化(DBMS_HPROF)儲存過程優化
- 高手過招「效能優化/純手寫SpringMVC框架/MySql優化/微服務」優化SpringMVC框架MySql微服務
- 萬惡的前端記憶體洩漏及萬善的解決方案前端記憶體
- 為什麼Flex是邪惡的Flex