提升編碼技能最快速的方式莫過于有一位老司機在旁邊手把手指導(即時反饋),但是這并不現實!不過可以使用一些輔助工具,時刻幫助我們發現編碼中可能存在的問題!
Intellij IDEA
IDEA是最重要、最有效的工具,可以編碼的時候實時檢測代碼,并給出改進意見。比如如下代碼:
import java.util.ArrayList;
import java.util.List;
/**
* Hello world!
*
* @author tenmao
*/
public class App {
public static void main(String[] args) {
List<Integer> data = new ArrayList<Integer>();
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
}
}
IDEA可以給出兩處改進意見,一處是new ArrayList<Integer>()
中Integer可以去掉,另外一處是for
循環,建議使用foreach
替換。
IDEA的代碼改進提示
IDEA自帶檢查功能
- 重復代碼
- 更優秀/簡潔的表達(如lambda, 方法引用,流式方法等)
- 命名錯誤
-
還有太多了(就不列舉了),如下圖
IDEA支持的檢查
主動檢測
菜單Analyze -> Inspect Code
,可以主動要求IDEA檢測所有代碼。這樣就不用逐個文件的檢查了。
例外
有時候項目或者公司習慣,一些IDEA的檢查項是允許的(甚至是要求的),比如常見的DAO, DTO命名就不符合IDEA的命名規范(駝峰式),也可以在IDEA的彈出提示中(ALT + ENTER
),禁止某一個檢查項
Findbugs
Findbugs是最經典的代碼檢查工具,可以幫助發現很多常見錯誤。比如資源沒有釋放、空指針、字符編碼等問題。 Findbugs有一個小毛病,就是無法實時檢查,而是需要手工觸發。
Findbugs檢測結果
Alibaba Java Coding Guidelines
阿里出品的代碼風格及最佳實踐的插件,推薦安裝,效果如下圖
總結
利用上面的工具,可以幫助Coder更快地掌握良好的編碼習慣和技巧,幾乎避免了所有低級的錯誤。(十毛編碼超過5年了,還是非常有幫助)。
PS:另外很多大公司內部,也都會有一些內部的代碼檢查工具和服務,也盡可能的使用起來,以成本最低、效率最高的方式提升自己。