文件結(jié)構(gòu)
|
重要性
|
審查項(xiàng)
|
結(jié)論
|
|
頭文件和定義文件的名稱是否合理?
|
|
|
頭文件和定義文件的目錄結(jié)構(gòu)是否合理?
|
|
|
版權(quán)和版本聲明是否完整?
|
|
重要
|
頭文件是否使用了 ifndef/define/endif 預(yù)處理塊 ?
|
|
|
頭文件中是否只存放“聲明”而不存放“定義”
|
|
|
……
|
|
程序的版式
|
重要性
|
審查項(xiàng)
|
結(jié)論
|
|
空行是否得體?
|
|
|
代碼行內(nèi)的空格是否得體?
|
|
|
長(zhǎng)行拆分是否得體?
|
|
|
“{” 和 “}” 是否各占一行并且對(duì)齊于同一列?
|
|
重要
|
一行代碼是否只做一件事?如只定義一個(gè)變量,只寫一條語(yǔ)句。
|
|
重要
|
If 、 for 、 while 、 do 等語(yǔ)句自占一行,不論執(zhí)行語(yǔ)句多少都要加“ {} ”。
|
|
重要
|
在定義變量(或參數(shù))時(shí),是否將修飾符 * 和 & 緊靠變量名?
|
|
|
注釋是否清晰并且必要?
|
|
重要
|
注釋是否有錯(cuò)誤或者可能導(dǎo)致誤解?
|
|
重要
|
類結(jié)構(gòu)的 public, protected, private 順序是否在所有的程序中保持一致?
|
|
|
……
|
|
命名規(guī)則
|
重要性
|
審查項(xiàng)
|
結(jié)論
|
重要
|
命名規(guī)則是否與所采用的操作系統(tǒng)或開發(fā)工具的風(fēng)格保持一致?
|
|
|
標(biāo)識(shí)符是否直觀且可以拼讀?
|
|
|
標(biāo)識(shí)符的長(zhǎng)度應(yīng)當(dāng) 符合“ min-length && max-information”原則?
|
|
重要
|
程序中是否出現(xiàn) 相同的局部變量和全部變量?
|
|
|
類名、函數(shù)名、變量和參數(shù)、常量的書寫格式是否遵循一定的規(guī)則?
|
|
|
靜態(tài)變量、全局變量、類的成員變量是否加前綴?
|
|
|
……
|
|
表達(dá)式與基本語(yǔ)句
|
重要性
|
審查項(xiàng)
|
結(jié)論
|
重要
|
如果代碼行中的運(yùn)算符比較多,是否已經(jīng)用括號(hào)清楚地確定表達(dá)式的操作 順序?
|
|
|
是否編寫太復(fù)雜或者多用途的復(fù)合表達(dá)式?
|
|
重要
|
是否將復(fù)合表達(dá)式與“真正的數(shù)學(xué)表達(dá)式”混淆?
|
|
重要
|
是否用隱含錯(cuò)誤的方式寫 if 語(yǔ)句 ? 例如
( 1 )將 布爾變量直接與 TRUE 、 FALSE 或者 1 、 0 進(jìn)行比較。
( 2 )將 浮點(diǎn)變量用“ ==”或“!=”與任何數(shù)字比較 。
( 3 )將 指針變量用“ ==”或“!=”與NULL比較 。
|
|
|
如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大,是否已經(jīng)將邏輯判斷移到循環(huán)體的外面?
|
|
重要
|
Case語(yǔ)句的結(jié)尾是否忘了加break?
|
|
重要
|
是否忘記寫 switch的default分支?
|
|
重要
|
使用 goto 語(yǔ)句時(shí)是否留下隱患? 例如跳過(guò)了某些對(duì)象的構(gòu)造、變量的初始化、重要的計(jì)算等。
|