【肥朝】看原始碼,我為什麼推薦IDEA?

肥朝發表於2019-04-29

本文並不評論Eclipse與IDEA孰好孰壞,但是由於肥朝平時都是使用IDEA開發的,所以推薦IDEA.這個和肥朝平時都是吃粵菜,所以推薦的都是粵菜為主,但是並不是說其他菜不好吃,肥朝不挑食!

1.條件斷點

看原始碼的時候,經常遇到這個情況,原始碼中有個for迴圈,關鍵是這個list的size有時候長達數百個.但是我們只想debug一種情況.肥朝就曾經見過,在for迴圈中打了斷點,一直按跳過,按了數十下之後.才找到自己想debug的值.這樣效率不高

比如下文這個

@Test
public void testList() throws Exception {
    List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
    for (Integer integer : list) {
        System.out.println(integer);
    }
}
複製程式碼

如果你想debug數字10這種情況,如果你不知道條件斷點,那麼你可能要一直點9次跳過.我們來看一下條件斷點的使用

【肥朝】看原始碼,我為什麼推薦IDEA?

這樣,就只有滿足條件的時候才會進入斷點了,告別無效的小手一抖!

2.強制返回值

比如SpringBoot中這個列印Banner的.我們想除錯多種情況.就可以利用這個Force Return,這樣方便我們除錯原始碼中的多種分支流程

【肥朝】看原始碼,我為什麼推薦IDEA?

3.模擬異常

在做業務開發中,我們有時需要模擬某個方法丟擲異常,看看自己的程式碼是不是像肥朝一樣可靠得一逼.但是你每次去寫死一個異常,然後再刪掉,這種低效的方式有違極客精神.那麼我們如果讓一個方法丟擲異常呢?

【肥朝】看原始碼,我為什麼推薦IDEA?

不過要注意的一點是,這個功能印象中是IDEA 2018年以後的版本才有的功能.

4.Evaluate Expression

比如我們看原始碼時遇到這個一個場景,這裡有一個byte[],但是我們就想看一下這個的值到底是啥.

【肥朝】看原始碼,我為什麼推薦IDEA?

那麼我們可以這麼操作一波

【肥朝】看原始碼,我為什麼推薦IDEA?

這個功能的使用場景非常的廣,通過這個功能,可以在看原始碼時,給某個變數賦我們要想的值,從而改變程式碼的分支走向等等.總之,這個是肥朝看原始碼中,使用頻率最高的功能之一.更多場景,等待老司機們自己調教!

5.toString的坑(重點)

相信看過Dubbo原始碼的朋友都會遇到過這個一個坑.也就是你把斷點打在下面圖示的第一個箭頭的時候,是無法進入init()方法的.但是你把斷點打在第二個箭頭也就是init()方法的時候,是能進入的.曾經也有不少人問過這個問題.

【肥朝】看原始碼,我為什麼推薦IDEA?

【肥朝】看原始碼,我為什麼推薦IDEA?

當然除了這個坑之外,也有類似的坑,如下

【肥朝】看原始碼,我為什麼推薦IDEA?

所以這個idea的預設設定.建議在一定條件下還是關閉


本文僅為冰山一角,上百篇原創乾貨還在路上掃描下面二維碼關注肥朝,讓天生就該造火箭的你,不再委屈擰螺絲!

【肥朝】看原始碼,我為什麼推薦IDEA?

相關文章