常規(guī)項(xiàng)
代碼能夠工作么伸但?它有沒(méi)有實(shí)現(xiàn)預(yù)期的功能肾请,邏輯是否正確等。
所有的代碼是否簡(jiǎn)單易懂更胖?
代碼符合你所遵循的編程規(guī)范么铛铁?這通常包括大括號(hào)的位置,變量名和函數(shù)名却妨,行的長(zhǎng)度饵逐,縮進(jìn),格式和注釋彪标。
是否存在多余的或是重復(fù)的代碼倍权?
代碼是否盡可能的模塊化了?
是否有可以被替換的全局變量捞烟?
是否有被注釋掉的代碼薄声?
循環(huán)是否設(shè)置了長(zhǎng)度和正確的終止條件?
是否有可以被庫(kù)函數(shù)替代的代碼题画?
是否有可以刪除的日志或調(diào)試代碼默辨?
安全
所有的數(shù)據(jù)輸入是否都進(jìn)行了檢查(檢測(cè)正確的類型,長(zhǎng)度苍息,格式和范圍)并且進(jìn)行了編碼缩幸?
在哪里使用了第三方工具,返回的錯(cuò)誤是否被捕獲档叔?
輸出的值是否進(jìn)行了檢查并且編碼桌粉?
無(wú)效的參數(shù)值是否能夠處理?
文檔
是否有注釋衙四,并且描述了代碼的意圖铃肯?
所有的函數(shù)都有注釋嗎?
對(duì)非常規(guī)行為和邊界情況處理是否有描述传蹈?
第三方庫(kù)的使用和函數(shù)是否有文檔押逼?
數(shù)據(jù)結(jié)構(gòu)和計(jì)量單位是否進(jìn)行了解釋?
是否有未完成的代碼惦界?如果是的話挑格,是不是應(yīng)該移除,或者用合適的標(biāo)記進(jìn)行標(biāo)記比如‘TODO’沾歪?
測(cè)試
代碼是否可以測(cè)試漂彤?比如,不要添加太多的或是隱藏的依賴關(guān)系,不能夠初始化對(duì)象挫望,測(cè)試框架可以使用方法等立润。
是否存在測(cè)試,它們是否可以被理解媳板?比如桑腮,至少達(dá)到你滿意的代碼覆蓋(code coverage)。
單元測(cè)試是否真正的測(cè)試了代碼是否可以完成預(yù)期的功能蛉幸?
是否檢查了數(shù)組的“越界“錯(cuò)誤破讨?
是否有可以被已經(jīng)存在的API所替代的測(cè)試代碼?