十個解放雙手的 IDEA插件,少些冤枉代碼
好久沒發(fā)這種實用貼了,最近用到了一些能提升工作效率的IDEA插件,給小伙伴們分享一下。相信我,我分享的這些插件,都是實實在在能解決實際開發(fā)場景中痛處的。
1、POJO to JSON
開發(fā)工作中,常常在設計完API后,會使用如GsonFormat工具來將設計文檔上的JSON格式數(shù)據(jù)生成Java實體類,這可以節(jié)省很多時間。
不過,在某些情況下,我們需要將已有實體類轉換為JSON格式數(shù)據(jù),那我通常不得不依賴于手動執(zhí)行單元測試或在main方法中,使用JSON處理庫(例如fastjson等)來實現(xiàn)對象到JSON字符串的轉換,是一件比較麻煩的事情。
圖片
使用POJO to JSON插件就讓這件事容易的多,只要在實體類名上右鍵執(zhí)行MakeJson,即可生成該類對應的JSON數(shù)據(jù),而且它支持多層級的對象。
圖片
2、Cool Request
Cool Request是一款基于IDEA的HTTP調試工具,可以看成是輕量版的postman,它會自動掃描項目代碼中所有API路徑,按項目分組管理。一個類被定義為Controller且其中的方法被@RequestMapping或者@XXXMapping注解標注以后就會被掃描到。
圖片
對應方法左側會出現(xiàn)一個標志,點擊展開右側邊欄就可以像在Postman中一樣進行調試。它支持CURL命令的導入導出、環(huán)境設置等功能,基本滿足開發(fā)調試需求。而且,還支持將API導出到Apifox,使得文檔導出變得非常簡單。整體而言,這個功能確實很實用。
圖片
3、CamelCase
CamelCase是個命名風格轉換插件,在進行代碼規(guī)范掃描審查時,我覺得這個插件非常實用,修改起來很簡單。舉個例子:假設我將靜態(tài)變量命名為aaaBaa,但作為一名資深程序員來說,這樣命名靜態(tài)變量顯然不夠專業(yè)?。?/p>
public static final String aaaBaa = "aaaBaa";
為了更加規(guī)范些,我們要將變量名改為大寫字母下劃線分割的格式。使用CamelCase可以在 kebab-case,SNAKE_CASE,PascalCase,camelCase,snake_case 和 空格風格之間切換。
mac快捷鍵為 ?+?+ U ,windows 下為 Shift + Alt +U。
圖片
4、any-rule
any-rule是一個正則表達式字典庫,盡管在日常開發(fā)中其使用頻率可能不是特別高,但它無疑是一個極為實用的工具。它涵蓋了廣泛的正則表達式類型,幾乎包括了你能想到的所有規(guī)則。
使用直接右鍵選擇AnyRule,支持搜索、正則驗證、示例展示。
圖片
5、Grep Console
Grep Console可以自定義控制臺輸出格式,對控制臺中不同級別的日志設置成不同的顏色。
圖片
驗證一下不同級別的日志在控制臺輸出的情況,不同級別顯示不同顏色,這樣在控制臺查看日志就一目了然了。
@Test
public void logTest() {
log.info("公眾號:程序員小富");
log.error("公眾號:程序員小富");
log.warn("公眾號:程序員小富");
log.debug("公眾號:程序員小富");
log.trace("公眾號:程序員小富");
}
圖片
6、GenerateO2O
GenerateO2O插件可以讓我們少些很多代碼,比如在開發(fā)接口時,常常需要將查詢得到的PO對象轉換為DTO對象。通常情況下,需要手動編寫Converter轉換方法,但借助這個插件,可以自動生成轉化屬性的代碼,可以少寫很多無趣代碼。
圖片
7、Smart input
Smart input解決了一件很煩的事,它能幫我們在不同的編碼區(qū)域內切換輸入法狀態(tài)。就是這個插件可以在我要寫注釋時它切換成中文輸入,寫代碼就會切換成英文輸入法,不用在手動切換了。
圖片
8、Squaretest
這款插件能夠自動生成Mock單元測試,之前我認為它是一個可有可無的插件。直至公司開始實施代碼質量管控并將單元測試覆蓋率列為KPI的一部分。不過,對于習慣編寫單元測試的同學來說,這個插件無疑是一把解放雙手的利器!
圖片
這個插件生成的mock測試代碼基本上可以直接運行,質量很高。不過好像現(xiàn)在收費了,退而求其次可以使用TestMe。
9、TONGYI Lingma
通義靈碼是阿里推出的一款AI編程插件,經(jīng)過我的實際體驗后,勉勉強強可以平替GPT、Copilot,更重要的是它免費!
該插件可以通過自然語言描述你想要的功能,可直接在編輯器區(qū)生成代碼;根據(jù)代碼上下文補全代碼;支持根據(jù)JUnit、Mockito、Spring Test、unit test、pytest 等框架生成單元測試(和Squaretest一樣);它還具備和GPT一樣的問答功能。
圖片
10、Auto filling Java call arguments
例如,當在方法A中調用方法B時,由于方法B具有較多參數(shù),使用該插件可以自動填充調用方法的參數(shù),無需逐個手動填寫,從而節(jié)省大量復制粘貼的操作。
圖片
總結
感謝這些插件的開發(fā)者們,為我們提供了如此便利高效的工具,極大地提升了我們編程的效率。希望大佬們繼續(xù)為開發(fā)者社區(qū)帶來更多優(yōu)秀的工具和創(chuàng)新,讓編程變得更加愉快和高效。