[轉]一些好的原則
阿新 • • 發佈:2019-03-21
去掉 lan 依靠 輸入格式 輸入提示 格式 輸出 重新整理 htm
轉自:http://blog.codingnow.com/2009/07/the_elements_of_programming_style.html#more
- 把代碼寫清楚,別耍小聰明。
- 想幹什麽,講的簡單點、直接點。
- 只要有可能,使用庫函數。
- 避免使用太多的臨時變量。
- ”效率“不是犧牲清晰性的理由。
- 讓機器去幹那些臟活。
- 重復的表達式應該換成函數調用。
- 加上括號、避免歧義。
- 不要使用含糊不清的變量名。
- 把不必要的分支去掉。
- 使用語言的好特性,不要使用那些糟糕的特性。
- 該用邏輯表達式的時候,不要使用過多的條件分支。
- 如果邏輯表達式不好理解,就試著做下變形。
- 選擇讓程序更簡潔的數據表達形式。
- 先用偽代碼寫,再翻譯成你使用的語言。
- 模塊化。使用過程和函數。
- 只要你能保證程序的可讀性,能不用 goto 就別用 。
- 不要給糟糕的代碼打補丁 - 重寫就是了。
- 把大的程序分成一小片一小片來寫,分塊測試。
- 使用遞歸程序來處理遞歸定義的數據結構。
- 正確和錯誤的輸入數據都要測試。
- 確保輸入不會超出程序的限制。
- 依靠文件結束來終止輸入,而不是依賴一個記數。
- 把文件結束作為一個輸入狀態來處理。
- 識別出錯誤的輸入;如果有可能就修復它。
- 讓輸入數據很容易構造出來,讓輸出數據不言自明。
- 使用統一的輸入格式。
- 讓輸入容易校對。
- 如有可能,提供更自由的輸入格式。
- 使用輸入提示,允許使用默認值。並把它們顯示出來。
- 把輸入輸出放到子程序裏。
- 確保所有的變量在使用前都有初始化。
- 不要因為一個 bug 而停止不前。
- 打開編譯程序的調試選項。
- 常量結構用數據聲明初始化,變量結構用執行代碼初始化。
- 小心 off-by-one 錯誤。
- 當循環中有多個跳出點時要小心。
- 如果什麽都不做,那麽也要優雅的表現出這個意思。
- 用邊界值測試程序。
- 手工檢查一些答案。
- 防禦式編程 - 為不可能的情況寫幾句代碼。
- 10.0 乘 0.1 很難保證永遠是 1.0 。
- 7/8 等於 0 ,而 7.0/8.0 不等於 0 。
- 不要直接判斷兩個浮點數相等。
- 先做對,再弄快。
- 先使其可靠,再讓其更快。
- 先把代碼弄幹凈,再讓它變快。
- 別為了獲得一丁點“性能”就犧牲掉整潔。
- 讓編譯器做些簡單的優化。
- 不要過分追求重用代碼;下次用的時候重新組織一下即可。
- 確保特殊的情況是真的特殊。
- 保持簡潔以獲得速度。
- 不要死磕代碼來加快速度 - 找個更好的算法。
- 用工具分析你的程序。在做“性能”改進前先評測一下。
- 確保註釋和代碼一致。
- 不要在註釋裏僅僅重復代碼 - 讓每處註釋都有價值。
- 不要給糟糕的代碼做註釋 - 應該重寫它。
- 給變量都起個有意義的名字。
- 把程序重新整理一下,讓閱讀代碼的人更容易理解。
- 為你的數據布局寫一個文檔。
- 不要過分註釋。
[轉]一些好的原則