代碼審查能夠幫助提升代碼質量,避免因爲代碼習慣而形成的 bug。下面列出的這些要點因該能夠做爲大部分代碼審查的指導,若是是 Java 應用的話,這些建議應該被視做最佳實踐。
文檔
1. Javadoc 應該在每個類和方法中添加。
2. 若是是修復某個 bug,應該添加 bug ID。
3. 走捷徑的方法或者複雜的邏輯要有解釋。
4. 若是代碼會被公開,每一個文件頭都要標註版權信息。
5. 複雜的 HTML,JavaScript,CSS 應該包含文檔。
功能
1. 若是相似的邏輯被使用了屢次,應該把它寫成一個幫助類,而後在多出調用。
2. 鼓勵使用 API 而不是重複編寫代碼解決相同的問題。
3. 要強調代碼的單元測試。
4. 任何新加的代碼不該該破壞已有的代碼。
5. 假如是 Web 應用,JSP 不該該包含 Java 代碼。
安全
1. 任何代碼都不能執行用戶的輸入,除非轉義過了。這個經常包含 JavaScript 的 eval 函數和 SQL 語句。
2. 禁止那些在短期內提交很是多請求的 IP。
3. 任何類,變量,還有方法都應該有正確的訪問域。
4. 儘可能避免使用 iframe。
性能
1. 全部數據庫和文件操句柄在不須要的時候都應該被關閉。
2. SQL 語句的寫法會致使性能千差萬別。
3. 鼓勵建立不可變(immutable)的類。
4. 相似的邏輯代碼,儘可能經過 if else 語句來實現更多的重用。
5. 儘可能避免使用重對象(heavy objects)。
6. 若是是 Web 項目,請檢查是否使用了合適的圖片尺寸,CSS sprites 和瀏覽器緩存等技術。
7. 全局都須要的信息保存在 application context 中。
編碼習慣
1. 沒有被使用的變量要刪除。
2. 針對不一樣的 Exception 要用不一樣的 catch 語句,而不是一個 Exception 解決全部問題。
3. 針對變量,方法和類要用相同的命名方法。
4. 常量應該被寫在獨立的常量類中。
5. 每行代碼的尾部不要有多餘的空格。
6. 對於括號,循環,if語句等等要用統一的格式。
7. 每個單獨的方法不該該超過100行。
8. 一個單獨的語句不該該超過編輯器的可視區域,它能夠被拆分紅幾行。
9. 檢查 String 對象既不是null也不是空的最好方法是 if(「」.equals(str))
10. 假如類有不少成員變量,而且實例化的時候只須要少數變量傳入的話,最好使用靜態工廠方法,而不是重載構造函數。
11. 給方法添加適當的訪問控制,而不是全部都是 public。
12. 遵照項目中使用的框架的最佳實踐建議,例如 Spring,Struts,Hibernate,jQuery。
以上的某些注意點能夠經過靜態代碼檢查工具完成,例如 CheckStyle,FindBugs 和 JTest。
數據庫