【轉載】The Elements of Programming Style之代碼風格金科玉律

原始日期:html

2017-02-06 16:20算法

 

《The Elements of Programming Style 》是一本很古老的書。儘管 Fortran 咱們不太使用,儘管新奇的語言層出不窮,但這些,30 年的歲月依舊沒法掩蓋其中的真知灼見。英文版的 google一下處處有。
 
把代碼寫清楚,別耍小聰明。 
想幹什麼,講的簡單點、直接點。 
只要有可能,使用庫函數。 
避免使用太多的臨時變量。 
」效率「不是犧牲清晰性的理由。 
讓機器去幹那些髒活。 
重複的表達式應該換成函數調用。 
加上括號、避免歧義。 
不要使用含糊不清的變量名。 
把沒必要要的分支去掉。 
使用語言的好特性,不要使用那些糟糕的特性。 
該用邏輯表達式的時候,不要使用過多的條件分支。 
若是邏輯表達式很差理解,就試着作下變形。 
選擇讓程序更簡潔的數據表達形式。 
先用僞代碼寫,再翻譯成你使用的語言。 
模塊化。使用過程和函數。 
只要你能保證程序的可讀性,能不用 goto 就別用 。 
不要給糟糕的代碼打補丁 - 重寫就是了。 
把大的程序分紅一小片一小片來寫,分塊測試。 
使用遞歸程序來處理遞歸定義的數據結構。 
正確和錯誤的輸入數據都要測試。 
確保輸入不會超出程序的限制。 
依靠文件結束來終止輸入,而不是依賴一個記數。 
把文件結束做爲一個輸入狀態來處理。 
識別出錯誤的輸入;若是有可能就修復它。 
讓輸入數據很容易構造出來,讓輸出數據不言自明。 
使用統一的輸入格式。 
讓輸入容易校對。 
若有可能,提供更自由的輸入格式。 
使用輸入提示,容許使用默認值。並把它們顯示出來。 
把輸入輸出放到子程序裏。 
確保全部的變量在使用前都有初始化。 
不要由於一個 bug 而中止不前。 
打開編譯程序的調試選項。 
常量結構用數據聲明初始化,變量結構用執行代碼初始化。 
當心 off-by-one 錯誤。 
當循環中有多個跳出點時要當心。 
若是什麼都不作,那麼也要優雅的表現出這個意思。 
用邊界值測試程序。 
手工檢查一些答案。 
防護式編程 - 爲不可能的狀況寫幾句代碼。 
10.0 乘 0.1 很難保證永遠是 1.0 。 
7/8 等於 0 ,而 7.0/8.0 不等於 0 。 
不要直接判斷兩個浮點數相等。 
先作對,再弄快。 
先使其可靠,再讓其更快。 
先把代碼弄乾淨,再讓它變快。 
別爲了得到一丁點「性能」就犧牲掉整潔。 
讓編譯器作些簡單的優化。 
不要過度追求重用代碼;下次用的時候從新組織一下便可。 
確保特殊的狀況是真的特殊。 
保持簡潔以得到速度。 
不要死磕代碼來加快速度 - 找個更好的算法。 
用工具分析你的程序。在作「性能」改進前先評測一下。 
確保註釋和代碼一致。 
不要在註釋裏僅僅重複代碼 - 讓每處註釋都有價值。 
不要給糟糕的代碼作註釋 - 應該重寫它。 
給變量都起個有意義的名字。 
把程序從新整理一下,讓閱讀代碼的人更容易理解。 
爲你的數據佈局寫一個文檔。 
不要過度註釋。編程

 

來源:http://blog.chinaunix.net/uid-21736802-id-1817764.html數據結構

相關文章
相關標籤/搜索