優(yōu)質(zhì)文章,第一時間送達(dá)
梁桂釗、陳同學(xué)、張帆、刁政欣(研習(xí)小組)| 作者
一、官方工具
IntelliJ IDEA 默認(rèn)安裝并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不為人知的工具。
在日常開發(fā)過程中,我們或多或少都涉及到 API 接口的測試。例如,有的小伙伴使用 Chrome 的 Postman 插件,或者使用火狐的 restclient 等工具。事實上,這些工具是測試 API 接口非常有效的方式之一,筆者之前也一直使用 Postman 完成 API 接口的測試工作。今天,筆者推薦另外一個非常好用的小工具,能夠幫助讀者快速測試 API 接口。這個工具就是 IDEA 的 Editor REST Client。IDEA 的 Editor REST Client 在 IntelliJ IDEA 2017.3 版本就開始支持,在 2018.1 版本添加了很多的特性。事實上,它是 IntelliJ IDEA 的 HTTP Client 插件。詳細(xì)使用文檔,參考:http://blog.720ui.com/2018/restclient_use/
如果需要研究源碼,內(nèi)置 UML Support 插件可以很好地查看類繼承關(guān)系。詳細(xì)使用文檔,參考:https://www.jetbrains.com/help/idea/class-diagram.html
未完待續(xù)。。。
阿里代碼規(guī)約檢測
快捷鍵提示工具:Key promoter X
代碼注解插件:Lombok
代碼生成工具:CodeMaker
單元測試測試生成工具:JUnitGenerator
Mybatis 工具:Free Mybatis plugin
Maven輔助神器:Maven Helper
JSON轉(zhuǎn)領(lǐng)域?qū)ο蠊ぞ撸篏sonFormat
領(lǐng)域?qū)ο筠D(zhuǎn)JSON工具:POJO to JSON
時序圖生成工具:SequenceDiagram
字符串工具:String Manipulation
代碼作色工具:Rainbow Brackets
RESTful 服務(wù)開發(fā)輔助工具集: RestfulToolkit
日志工具:Grep Console
生成對象set方法:GenerateAllSetter
Redis可視化:Iedis
K8s工具:Kubernetes
中英文翻譯工具:Translation
《阿里巴巴 Java 開發(fā)手冊》是阿里巴巴集團(tuán)技術(shù)團(tuán)隊的集體智慧結(jié)晶和經(jīng)驗總結(jié), 經(jīng)歷了多次大規(guī)模一線實戰(zhàn)的檢驗及不斷完善, 系統(tǒng)化地整理成冊。當(dāng)然,規(guī)范只能提供參考,我們還需要工具來幫忙我們實現(xiàn)了實時檢測。目前,Alibaba Java Code Guidelines 插件實現(xiàn)了開發(fā)手冊中的的 53 條規(guī)則,大部分基于 PMD 實現(xiàn),其中有 4 條規(guī)則基于 IDEA 實現(xiàn),并且基于 IDEA Inspection 實現(xiàn)了實時檢測功能。部分規(guī)則實現(xiàn)了 Quick Fix 功能。目前,插件檢測有兩種模式:實時檢測、手動觸發(fā)。詳細(xì)使用文檔,參考:https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md
阿里巴巴 Java 開發(fā)手冊(詳盡版):https://github.com/alibaba/p3c/blob/master/阿里巴巴Java開發(fā)手冊(詳盡版).pdf
GitHub : https://github.com/alibaba/p3c
IDEA 插件地址:https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines
此外,類似的插件還有 FindBugs 和 CheckStyle。
Key Promoter X 是一個快捷鍵提示插件,如果鼠標(biāo)操作是能夠用快捷鍵替代,Key Promoter X 會提示可以用什么快捷鍵替代。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/9792-key-promoter-x
lombok 的使用,參考 :https://projectlombok.org/。我們需要在代碼中引入二方庫,然后安裝 lombok 插件即可。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>最新版本號</version>
</dependency>
開發(fā)過程中,經(jīng)常手工編寫重復(fù)代碼?,F(xiàn)在,可以通過 CodeMaker 來定義 Velocity 模版來支持自定義代碼模板來生成代碼。目前,CodeMaker 自帶兩個模板。Model:根據(jù)當(dāng)前類生成一個與其擁有類似屬性的類,用于自動生成持久類對應(yīng)的領(lǐng)域類。Converter:該模板需要兩個類作為輸入的上下文,用于自動生成領(lǐng)域類與持久類的轉(zhuǎn)化類。詳細(xì)使用文檔,參考:https://github.com/x-hansong/CodeMaker
單元測試是必不可少的!我們可以使用 JUnitGenerator 插件來自動創(chuàng)建了單元測試。我們可以使用提供的 velocity 模板定制單元測試輸出代碼。如果在已經(jīng)存在單元測試的地方創(chuàng)建了單元測試,則會提示用戶進(jìn)行覆蓋或合并操作。合并操作允許用戶有選擇地創(chuàng)建目標(biāo)文件內(nèi)容。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0
現(xiàn)在,MyBatis 框架已占領(lǐng)半壁江山。因此,圍繞著 MyBatis 的插件和工具越來越多。Free Mybatis plugin 非常方便進(jìn)行 Mapper 接口和 XML 文件之間跳轉(zhuǎn)。詳細(xì)使用文檔,參考:
https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin。此外,收費版的還有 Mybatis plugin。
對于 Mybatis 的工具還有很多,比如 mybatis-log-plugin、codehelper.generator。此外,非 IDEA的工具有:Mybatis 分頁插件 Mybatis-PageHelper、Mybatis 代碼生成工具 mybatis-generator 等。地址:http://www.mybatis.org/generator/
如果 Maven 引入的 jar 包有沖突,可以使用 Maven Helper 插件來幫助分析。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/7179-maven-helper
在開發(fā)過程中,我們可能會遇到 json 格式的字符串轉(zhuǎn)換成實體類參數(shù)的場景,這個插件可以根據(jù) JSONObject 格式的字符串,自動生成實體類參數(shù)。詳細(xì)使用文檔,參考:https://github.com/zzz40500/GsonFormat
那么,如何使用呢?我們可以使用 GsonFommat 的快捷鍵,默認(rèn) option + s (mac), alt + s (win) 通過以下方式修改快捷鍵?;蛘唿c擊工具欄的 Generate 來喚起生成工具。
為了測試需要,我們需要將簡單 Java 領(lǐng)域?qū)ο筠D(zhuǎn)成 JSON 字符串方便用 postman 或者 curl 模擬數(shù)據(jù)。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/9686-pojo-to-json
有的時候,我們需要梳理業(yè)務(wù)邏輯或者閱讀源碼。從中,我們需要了解整個調(diào)用鏈路,反向生成 UML 的時序圖是強(qiáng)需求。其中,SequenceDiagram 插件是一個非常棒的插件。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/8286-sequencediagram
String Manipulation 插件提供了非常豐富字符串工具,例如命名替換( (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snakecase, SCREAMINGSNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)等。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/2162-string-manipulation
Rainbow Brackets 插件可以實現(xiàn)配對括號相同顏色,并且實現(xiàn)選中區(qū)域代碼高亮的功能。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
事實上,代碼作色之后,可以非常方便我們閱讀。類似的工具還有:Grep Console 來自定義設(shè)置控制臺輸出顏色等。
開發(fā)中,經(jīng)過會根據(jù) URI 的部分信息來查找對應(yīng)的 Controller 中方法,RestfulToolkit 提供了一套 RESTful 服務(wù)開發(fā)輔助工具集,提供了如下功能:
根據(jù) URL 直接跳轉(zhuǎn)到對應(yīng)的方法定義 ( Ctrl \ or Ctrl Alt N ); 提供了一個 Services tree 的顯示窗口; 一個簡單的 http 請求工具; 在請求方法上添加了有用功能: 復(fù)制生成 URL;,復(fù)制方法參數(shù)... 其他功能: java 類上添加 Convert to JSON 功能,格式化 json 數(shù)據(jù) ( Windows: Ctrl + Enter; Mac: Command + Enter )。
詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/10292-restfultoolkit
參考:https://plugins.jetbrains.com/plugin/7125-grep-console
不同級別日志通過顏色區(qū)分,一路了然
高亮日志
便捷檢索日志
開發(fā)中,有時可以通過BeanUtil等工具類進(jìn)行對象之間的屬性拷貝,但有時候也需要手工進(jìn)行賦值。通過GenerateAllSetter,可以一鍵生成對象的所有set語句。
參考:https://plugins.jetbrains.com/plugin/9228-iedis 使用參考:https://codesmagic.com/iedis/userguide/getting-started 可方便的執(zhí)行增刪查改及使用命令行進(jìn)行操作。
參考 https://plugins.jetbrains.com/plugin/10485-kubernetes 支持編輯 Kubernetes 資源文件,如下:可以比較方便的查看yaml中的各項 placeholder 的默認(rèn)值,且可以方便的鏈接到value位置。
最騷的操作是什么?帆哥在群里分享了一套「半中文編程」:說到了變量命名,先用中文寫好,然后用 Translation 插件的 translate and replace 一鍵替換為英文,這樣效率高而且準(zhǔn)確。詳細(xì)使用文檔,參考:https://plugins.jetbrains.com/plugin/8579-translation。
正文結(jié)束