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

edithfang發表於2014-07-14
簡介:

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

主要工作經歷:

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

最主要的成就:

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


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

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

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

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

原則 4. 相對於樸素的演算法來說,花哨的演算法更容易出現Bug,更難除錯。儘量使用樸素的演算法和資料結構。

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

Pike的第 1 條和第 2條原則實際上重新強調了Tony Hoare那句名言,“過早的優化是萬惡的根源”。Ken Thompson將Pike的第 3 條和第 4條原則改寫為“當遇到麻煩時,試試最簡單粗暴的辦法”,原則 3 和原則 4 也是 KISS 哲學的體現。Fred Brooks在《人月神話》中首先闡述了原則 5 ,原則 5 常常會被概括為“用最佳結構,寫簡單程式碼”。

本文由 伯樂線上 - makttub  翻譯自 utexas.edu
來自:伯樂線上
相關閱讀
評論(0)

相關文章