自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

代碼審查最佳實(shí)踐

開發(fā) 開發(fā)工具 后端
代碼審查可以幫助提高代碼質(zhì)量,避免由于代碼習(xí)慣而造成的 bug。下面列出的這些要點(diǎn)因該可以作為大部分代碼審查的指導(dǎo),如果是 Java 應(yīng)用的話,這些建議應(yīng)該被視作最佳實(shí)踐。

 

[[89803]] 

代碼審查可以幫助提高代碼質(zhì)量,避免由于代碼習(xí)慣而造成的 bug。下面列出的這些要點(diǎn)因該可以作為大部分代碼審查的指導(dǎo),如果是 Java 應(yīng)用的話,這些建議應(yīng)該被視作最佳實(shí)踐。

文檔

1. Javadoc 應(yīng)該在每一個類和方法中添加。

2. 如果是修復(fù)某個 bug,應(yīng)該添加 bug ID。

3. 走捷徑的方法或者復(fù)雜的邏輯要有解釋。

4. 如果代碼會被公開,每個文件頭都要標(biāo)注版權(quán)信息。

5. 復(fù)雜的 HTML,JavaScript,CSS 應(yīng)該包含文檔。

功能

1. 如果類似的邏輯被使用了多次,應(yīng)該把它寫成一個幫助類,然后在多出調(diào)用。

2. 鼓勵使用 API 而不是重復(fù)編寫代碼解決相同的問題。

3. 要強(qiáng)調(diào)代碼的單元測試。

4. 任何新加的代碼不應(yīng)該破壞已有的代碼。

5. 假如是 Web 應(yīng)用,JSP 不應(yīng)該包含 Java 代碼。

安全

1. 任何代碼都不能執(zhí)行用戶的輸入,除非轉(zhuǎn)義過了。這個常常包含 JavaScript 的 eval 函數(shù)和 SQL 語句。

2. 禁止那些在短時間內(nèi)提交非常多請求的 IP。

3. 任何類,變量,還有方法都應(yīng)該有正確的訪問域。

4. 盡量避免使用 iframe。

性能

1. 所有數(shù)據(jù)庫和文件操句柄在不需要的時候都應(yīng)該被關(guān)閉。

2. SQL 語句的寫法會導(dǎo)致性能千差萬別。

3. 鼓勵創(chuàng)建不可變(immutable)的類。

4. 類似的邏輯代碼,盡量通過 if else 語句來實(shí)現(xiàn)更多的重用。

5. 盡量避免使用重對象(heavy objects)。

6. 如果是 Web 項(xiàng)目,請檢查是否使用了合適的圖片尺寸,CSS sprites 和瀏覽器緩存等技術(shù)。

7. 全局都需要的信息保存在 application context 中。

編碼習(xí)慣

1. 沒有被使用的變量要刪除。

2. 針對不同的 Exception 要用不同的 catch 語句,而不是一個 Exception 解決所有問題。

3. 針對變量,方法和類要用相同的命名方法。

4. 常量應(yīng)該被寫在獨(dú)立的常量類中。

5. 每行代碼的尾部不要有多余的空格。

6. 對于括號,循環(huán),if語句等等要用統(tǒng)一的格式。

7. 每一個單獨(dú)的方法不應(yīng)該超過100行。

8. 一個單獨(dú)的語句不應(yīng)該超過編輯器的可視區(qū)域,它可以被拆分成幾行。

9. 檢查 String 對象既不是null也不是空的最好方法是 if(“”.equals(str))

10. 假如類有很多成員變量,并且實(shí)例化的時候只需要少數(shù)變量傳入的話,最好使用靜態(tài)工廠方法,而不是重載構(gòu)造函數(shù)。

11. 給方法添加適當(dāng)?shù)脑L問控制,而不是所有都是 public。

12. 遵守項(xiàng)目中使用的框架的最佳實(shí)踐建議,例如 Spring,Struts,Hibernate,jQuery。

以上的某些注意點(diǎn)可以通過靜態(tài)代碼檢查工具完成,例如 CheckStyle,F(xiàn)indBugs 和 JTest。

原文鏈接,OSChina.NET 編譯

責(zé)任編輯:林師授 來源: OSCHINA
相關(guān)推薦

2014-10-29 13:52:38

程序員

2015-05-06 09:20:34

代碼質(zhì)量代碼審查實(shí)踐

2017-01-20 09:45:20

JavaScript代碼質(zhì)量

2013-02-27 10:11:06

代碼審查ThoughtBot

2015-04-09 10:12:58

代碼審查工具減少編程錯誤

2012-11-22 09:51:14

2018-05-10 15:06:43

Java Web分層實(shí)踐

2018-01-12 14:37:34

Java代碼實(shí)踐

2023-07-21 01:12:30

Reactfalse?變量

2011-08-18 11:05:21

jQuery

2012-03-15 16:52:39

JavaCodePro Ana

2011-04-15 15:16:18

代碼編程

2022-07-13 15:41:13

代碼檢查審查員開發(fā)

2011-12-21 13:52:27

JavaJFreeChart

2015-09-23 09:08:38

java反射

2023-09-11 08:50:03

Maven工具關(guān)系管理

2024-08-21 08:02:47

2014-06-09 15:50:08

2011-12-21 13:35:39

JavaJFreeChart

2014-08-19 10:06:53

IAP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號