程式碼審查最佳實踐
程式碼審查可以幫助提高程式碼質量,避免由於程式碼習慣而造成的 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。
相關文章
- [譯] 程式碼審查之最佳實踐
- 程式碼審查或評審的最佳實踐 - FogBugz
- 程式猿必備的17款最佳的程式碼審查工具
- 一些通過SAPABAP程式碼審查得出的ABAP程式設計最佳實踐程式設計
- 使用 Upsource 實現程式碼審查 - jetbrains 系列AI
- React 程式碼共享最佳實踐方式React
- 一些通過SAP ABAP程式碼審查得出的ABAP程式設計最佳實踐程式設計
- python程式碼檢查工具(靜態程式碼審查)Python
- 聚合型程式碼審計工具QingScan使用實踐
- 輕鬆連線 ChatGPT實現程式碼審查ChatGPT
- Go 程式碼審查建議Go
- dart系列之:dart程式碼最佳實踐Dart
- Vert.x 程式碼結構最佳實踐
- 編寫優雅程式碼的最佳實踐
- Semgrep結合GitLab實現程式碼審計實踐-服務端Gitlab服務端
- Shell指令碼最佳實踐指令碼
- AI應用的程式碼審查CodeReviewAIView
- Kubernetes叢集健康檢查最佳實踐
- Java Web應用的程式碼分層最佳實踐。JavaWeb
- 編寫高效能 Java 程式碼的最佳實踐Java
- 領域驅動設計最佳實踐--程式碼篇
- 【翻譯】編寫程式碼註釋的最佳實踐
- 程式碼review,程式碼審查,用upsource 也太方便了吧View
- 五個程式碼審查反模式 - Trisha Gee模式
- 異常值檢測!最佳統計方法實踐(程式碼實現)!⛵
- 讓程式碼具有可讀性的10種最佳實踐
- 聊聊Go程式碼覆蓋率技術與最佳實踐Go
- 美團外賣Android Lint程式碼檢查實踐Android
- 資料安全治理及審計合規的最佳實踐XX
- 如何做人性化的程式碼審查?
- 有手就行10——Jenkins+SonarQube程式碼審查Jenkins
- 程式碼審查:從 ArrayList 說執行緒安全執行緒
- 最佳實踐 | 原始碼升級gcc原始碼GC
- 簡訊驗證碼“最佳實踐”
- 掌握TypeScript:10個最佳實踐提高程式碼質量.mdTypeScript
- JNI程式碼實踐
- Python程式設計規範+最佳實踐Python程式設計
- Nestjs最佳實踐教程(六): 簡化程式碼與自定義約束JS
- 我從 1000 份程式碼審查中學到了什麼