最近讀了一些重構(refactoring)和專案建置的書
感覺C++的功力又更上一層
不過我這邊要講的跟是不是用C++沒有太大的關係
只要你是用物件導向(object oriented)的程式語言來撰寫程式就夠了
你可以直接在Google輸入
"Premature Optimization is The Root of All Evil"
就會找到一堆相關的文章
Google甚至會在你打入premature optimization後就會提示你 is the root of all evil
翻成中文後大致上的意思是
"過早的最佳化是所有罪惡的根源"
大概有90%的最佳化的動作
都會在完整的專案完成後發現一點屁用都沒有
絕大多數是的原因是打從一開始你就先入為主地認為某一段code是造成這小段程式效能低落的瓶頸
但這並不代表這小段程式在整個專案中會被用到很多次
你可能覺得你已經是箇中老手又或許你覺得沒什麼大不了
(那為什麼即使強如IBM, microsoft的工程師也會犯這種錯咧)
但你是否常常會邊寫code的時間邊在想那樣寫比較快?
這樣的動作即是premature optimization
為什麼這樣不好?
但你應該問為什麼要將精力花在這種事上?
我們珍貴的腦力應該是用來從事更高階的活動
設計專案、規劃流程等等
而不是在這種瑣事上
那效率怎麼辦?
我的程式跑好慢怎麼辦?
Profile !!
等你整個程式整個專案都完成後
在進行最後的最佳化
先從花最多時間的部分開刀
再朝執行時花次多時間的部份下手
因為當你將腦力花在設計更有結構更物件導向的程式上後
你的程式就越容易維護也越容易更改
這時做最佳化就會變得更簡單
也絕對更有效果
對這主題還有興趣可以google一下
相關主題非常多
懂了這個後
保證你已經又往偉大的程式設計員邁向了下一步
沒有留言:
張貼留言