天天看點

谷歌大牛 Rob Pike 的 5 個程式設計原則谷歌大牛 Rob Pike 的 5 個程式設計原則簡介:

谷歌大牛 Rob Pike 的 5 個程式設計原則

簡介:

Rob Pike,目前谷歌公司最著名的軟體工程師之一,曾是貝爾實驗室Unix開發團隊成員,Plan9作業系統開發的主要上司人,Inferno作業系統開發的主要上司人。他是締造Go語言和Limbo語言的核心人物。下面是他分享給大家他在貝爾實驗室工作的一段經曆,這段經曆改變了他對bug調試的思想認識。

主要工作經曆:

我在貝爾實驗室工作了很多年。我在計算機科學研究中心,你會很詫異,這是個很小的實驗室,但這裡卻創造了Unix,我來到這裡工作的時候Unix已經釋出了第七版。從2002年起我來到谷歌工作,主要開發一些系統基礎架構。

最主要的成就:

我最為人所知的應該是我和Brian Kernighan(Unix開發組的重要成員)合著的兩本書:《The Unix Programming Environment》 和 《程式設計實踐(The Practice of Programming)》 (30年後的今天仍在印刷出版!),影響範圍最廣的一件事應該是我和Ken Thompson共同開發完成了UTF-8編碼格式。在其它方面,諸如計算機圖形,作業系統,軟體開發工具等上也做了大量的工作,最近在給谷歌開發Go程式設計語言。

谷歌大牛 Rob Pike 的 5 個程式設計原則谷歌大牛 Rob Pike 的 5 個程式設計原則簡介:

下面是 Rob Pike 的 5 個程式設計原則

原則 1. 你沒有辦法預測每個程式的運作時間,瓶頸會出現在出乎意料的地方,是以在分析瓶頸原因之前,先不要盲目猜測。

原則 2. 測試(measure)。在測試之前不要優化程式,即使在測試之後也要慎重,除非一部分代碼占據絕對比重的運作時間。

原則 3. 花哨的算法在 n 比較小時效率通常比較糟糕,而 n 通常是比較小的,并且這些算法有一個很大的常數。除非你确定 n 在變大,否則不要用花哨的算法。(即便 n 不變大,也要先遵循第 2 個原則。)

原則 4. 相對于樸素的算法來說,花哨的算法更容易出現Bug,更難調試。盡量使用樸素的算法和資料結構。

原則 5. 資料占主導地位(Data dominates)。如果你選擇了正确的資料結構,并且已把事情組織好,那麼算法的效率顯而易見。程式設計的核心是資料結構是,不是算法。

Pike的第 1 條和第 2 條原則實際上重新強調了Tony Hoare那句名言,“過早的優化是萬惡的根源”。Ken Thompson将Pike的第 3 條和第 4 條原則改寫為“當遇到麻煩時,試試最簡單粗暴的辦法”,原則 3 和原則 4 也是 KISS 哲學的展現。Fred Brooks在《

人月神話

》中首先闡述了原則 5 ,原則 5 常常會被概括為“用最佳結構,寫簡單代碼”。

谷歌大牛 Rob Pike 的 5 個程式設計原則谷歌大牛 Rob Pike 的 5 個程式設計原則簡介:
谷歌大牛 Rob Pike 的 5 個程式設計原則谷歌大牛 Rob Pike 的 5 個程式設計原則簡介:

繼續閱讀