代碼審查最佳實踐
代碼審查可以幫助提高代碼質量,避免由于代碼習慣而造成的 bug。下面列出的這些要點因該可以作為大部分代碼審查的指導,如果是 Java 應用的話,這些建議應該被視作最佳實踐。
文檔
- Javadoc 應該在每一個類和方法中添加。
- 如果是修復某個 bug,應該添加 bug ID。
- 走捷徑的方法或者復雜的邏輯要有解釋。
- 如果代碼會被公開,每個文件頭都要標注版權信息。
- 復雜的 HTML,JavaScript,CSS 應該包含文檔。
功能 - 如果類似的邏輯被使用了多次,應該把它寫成一個幫助類,然后在多出調用。
- 鼓勵使用 API 而不是重復編寫代碼解決相同的問題。
- 要強調代碼的單元測試。
- 任何新加的代碼不應該破壞已有的代碼。
- 假如是 Web 應用,JSP 不應該包含 Java 代碼。
安全 - 任何代碼都不能執行用戶的輸入,除非轉義過了。這個常常包含 JavaScript 的 eval 函數和 SQL 語句。
- 禁止那些在短時間內提交非常多請求的 IP。
- 任何類,變量,還有方法都應該有正確的訪問域。
- 盡量避免使用 iframe。
性能 - 所有數據庫和文件操句柄在不需要的時候都應該被關閉。
- SQL 語句的寫法會導致性能千差萬別。
- 鼓勵創建不可變(immutable)的類。
- 類似的邏輯代碼,盡量通過 if else 語句來實現更多的重用。
- 盡量避免使用重對象(heavy objects)。
- 如果是 Web 項目,請檢查是否使用了合適的圖片尺寸,CSS sprites 和瀏覽器緩存等技術。
- 全局都需要的信息保存在 application context 中。
編碼習慣 - 沒有被使用的變量要刪除。
- 針對不同的 Exception 要用不同的 catch 語句,而不是一個 Exception 解決所有問題。
- 針對變量,方法和類要用相同的命名方法。
- 常量應該被寫在獨立的常量類中。
- 每行代碼的尾部不要有多余的空格。
- 對于括號,循環,if語句等等要用統一的格式。
- 每一個單獨的方法不應該超過100行。
- 一個單獨的語句不應該超過編輯器的可視區域,它可以被拆分成幾行。
- 檢查 String 對象既不是null也不是空的最好方法是 if(“”.equals(str))
- 假如類有很多成員變量,并且實例化的時候只需要少數變量傳入的話,最好使用靜態工廠方法,而不是重載構造函數。
- 給方法添加適當的訪問控制,而不是所有都是 public。
- 遵守項目中使用的框架的最佳實踐建議,例如 Spring,Struts,Hibernate,jQuery。
以上的某些注意點可以通過靜態代碼檢查工具完成,例如 CheckStyle,FindBugs 和 JTest。</p>
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!