Unix文化 不要過度優化,有關演算法

2021-05-21 22:18:02 字數 629 閱讀 4950

這裡的過度也包括「提早」。

下面的話是rob pike,最偉大的c語言大師之一說的,放在這裡,已示驚醒:

1.你無法斷定程式會在什麼地方耗費執行時間。瓶頸經常出現在想不到的地方,所以別急著胡亂找個地方改**,除非你已經證明那兒就是瓶頸所在;

2.估量。在你沒對**進行估量,特別是沒找到最耗時的那部分之前,別去優化速度;

3.花哨的演算法在n很小時通常很慢,而n通常很小。花哨演算法的常數複雜度很大。除非你確定n總是很大,否則不要使用花哨演算法。(即使n很大,也優先考慮原則2)

4.花哨的演算法比簡單演算法更容易出bug,更難實現。盡量使用簡單的演算法配合簡單的資料結構;

5.資料壓倒一切。如果已經選擇了正確的資料結構並且把一切都組織的井井有條,正確的演算法也就不言自明。程式設計的核心是資料結構,而不是演算法。

ken thompson對第四條給了更加精闢的補充

——拿不準就窮舉。

以上摘自《unix程式設計藝術》。從這些簡單的文字,我們可以看到當年的大師,尤其是unix程式設計師對待資料結構,對待演算法的態度,同時也能看到他們對待簡單與複雜的辯證的視角。這些值得我們自己寫程式時好好思考,即使在當今大資料量越來越顯重要的情況下。

——你處理的資料量的大小決定了你真正的能力。

兩種不同的觀點,都對,都要吸收。

不要過度依賴自己控制之外的東西

遊戲下個大版本的其中乙個內容是對乙個系統進行操作簡化 幾個介面的操作整合在乙個介面,操作步驟簡化等。我是負責該系統的邏輯流程 編寫。原以為只是ui那邊的大改,但回看邏輯模組的舊 時,發現和ui互動部分過度耦合,獨立性過低,很多地方ui那邊改了邏輯這邊也跟著改。ui的介面整合,導致邏輯也要大改,叫苦不...

研發人員欠缺的「不要臉」文化

一直感覺研發人員相對市場人員確實缺少點什麼,今天聽到乙個原華為的人說華為的文化中有乙個 不要臉 文化。講的就是研發人員要特別注意的事項。特別說明,不要臉,三個字,據說是任正非認為這樣好記,才取得名字。這三點是 抬頭看路,找人問路,請人帶路。我覺得研發人員和市場人員的關鍵差別 於乙個對著電腦工作,習慣...

研發人員欠缺的「不要臉」文化

一直感覺研發人員相對市場人員確實缺少點什麼,今天聽到乙個原華為的人說華為的文化中有乙個 不要臉 文化。講的就是研發人員要特別注意的事項。特別說明,不要臉,三個字,據說是任正非認為這樣好記,才取得名字。這三點是 抬頭看路,找人問路,請人帶路。我覺得研發人員和市場人員的關鍵差別 於乙個對著電腦工作,習慣...