1. 程式人生 > >[轉]一些好的原則

[轉]一些好的原則

去掉 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 。
  • 不要直接判斷兩個浮點數相等。
  • 先做對,再弄快。
  • 先使其可靠,再讓其更快。
  • 先把代碼弄幹凈,再讓它變快。
  • 別為了獲得一丁點“性能”就犧牲掉整潔。
  • 讓編譯器做些簡單的優化。
  • 不要過分追求重用代碼;下次用的時候重新組織一下即可。
  • 確保特殊的情況是真的特殊。
  • 保持簡潔以獲得速度。
  • 不要死磕代碼來加快速度 - 找個更好的算法。
  • 用工具分析你的程序。在做“性能”改進前先評測一下。
  • 確保註釋和代碼一致。
  • 不要在註釋裏僅僅重復代碼 - 讓每處註釋都有價值。
  • 不要給糟糕的代碼做註釋 - 應該重寫它。
  • 給變量都起個有意義的名字。
  • 把程序重新整理一下,讓閱讀代碼的人更容易理解。
  • 為你的數據布局寫一個文檔。
  • 不要過分註釋。

[轉]一些好的原則