編碼檢查表-編寫無錯代碼的指南

編碼檢查

 

總結 了《 Writing Clean Code 》的所有 點,教你 寫整 的代 。使用本表的最好 法是花兩週 時間評審 一下你的 設計 編碼實現 。先花幾分 鍾時間 看一看列表,一旦熟悉了 問題 ,就可以靈活自如地按它寫代 了。此 ,就可以把表放在一 了。

 

一般問題

── 你是否 程序建立了 DEBUG 版本?

── 你是否將 發現 錯誤 改正了?

─一 你是否 測試 .即使耽 度也在所不惜?

── 你是否依靠 測試組爲 測試

─一 你是否知道 編碼 序?

─一 你的 編譯 程序是否有可 的各 警告?

 

關於將更改歸併到主程序

─一 你是否將 編譯 程序的警告(包括可 的)都 理了?

── 你的代 是否未用 Lint

─一 你的代 碼進 行了 測試嗎

─一 你是否逐 一條 編碼 路徑以 察數據流?

─一 你是否逐 彙編語 次上的所有 關鍵

── 是否清理 了任何代 ?如果是,修改 處經過徹 測試

─一 文檔是否指出了使用你的代 有危

── 程序 維護 是否能 理解你的代

 

每當實現了一個函數或子系統之時

─一 是否用斷言 證實 了函數參數的有效性?

─一 代 中是否有未定 的或者無意 的代

─一 代 能否 建未定 的數據?

─一 有沒有 以理解的斷言? 作解 了沒有?

─一 你在代 中是否作 任何假

─一 是否使用斷言警告可能出 的非常情況?

─一 是否作 防禦性程序 設計 ?代 是否 藏了 錯誤

─一 是否用第二個算法來 驗證 第一個算法?

─一 是否有可用於確 或數據的啓 startup 檢查 ?

─一 代 是否包含了隨機行 ?能消除 些行 爲嗎

── 你的代 生了無用信息,你是否在 DEBUG 中也把它 無用信息?

── 代 中是否有稀奇古怪的行

── 若代 是子系 的一部分,那 你是否建立了一個子系 統測試

── 在你的 設計 和代 中是否有任意情況?

── 即使程序 不感到需要,你也作完整性 檢查嗎

── 你是否因 程序太大或太慢,而將有價 DEBUG 測試 拋置一

── 是否使用了不可移植的數據 型?

─一 代 中是否有 量或表達式 生上溢或下溢?

── 是否準確地 實現 了你的 設計 是非常近似地 實現 了你的 設計

── 代 是否不止一次地解同一個 問題

── 是否企 消除代 中的 一個 if 句?

── 是否用 嵌套?:運算符?

── 是否已將 用代 孤立出來?

── 是否用到了有 風險

─一 是否不必要地將不同 型的運算符混用?

── 是否 調 用了返回 錯誤 的函數?你能消除 這種調

─一 是否引用了尚未分配的存

─一 是否引用已 經釋 放了的存

── 是否不必要地多用了 衝存

── 是否向靜 或全局 衝區 送了數據?

── 你的函數是否依 於另一個函數的內部 細節

── 是否使用了怪異的或有疑 C

── 在代 中是否有 在一行的毛病?

── 代 有不必要的靈活性 ?你能消除它 們嗎

─一 你的代 經過 多次“ 着”求解的

─一 函數是否小並容易 測試

 

每當設計了一個函數或子系統後

─一 此特徵是否符合 品的市 策略?

─一 錯誤 是否作 正常返回 的特殊情況而 藏起來?

─一 是否 評審 了你的界面,它能保 證難 於出 現誤 操作

─一 是否具有多用途且面面 到的函數?

─一 你是否有太靈活的(空空洞洞的)函數參數?

─一 當你的函數不再需要 ,它是否返回一個 錯誤 條件?

─一 在 調 用點你的函數是出易

─一 你的函數是否有布 入?

 

修改錯誤之時

── 錯誤 無法消失,是否能找到 錯誤 的根源?

─一 是修改了 錯誤 的真正根源, 僅僅 修改了 錯誤 的症狀?

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章