# 集成开发环境/编辑器插件 - [WakaTime](https://wakatime.com/plugins) 一款可以记录编码时间的工具。目前支持绝大部分主流的 IDE 以及 Chrome 浏览器。使用参考:[WakaTime数据同步展示工](https://juejin.im/post/5c4172e5518825265c2fe8ba)。  ## 😋 VS Code - [VSC Netease Music](https://github.com/nondanee/vsc-netease-music) - 听歌小插件。 ## 😋 Intellij IDEA 1、插件安装 打开 setting 文件选择 Plugins 选项: - Ctrl + Alt + S - File -> Setting 分别是安装 JetBrains 插件,第三方插件,本地已下载的插件包。 2、插件收集 - **Statistic** 统计各类文件,对象个数,文件大小,行数等等属性信息。安装和使用参考:[IDEA 代码统计插件 --- Statistic](https://blog.csdn.net/u014430366/article/details/77574222) - **activate-power-mode 和 Power mode II** 根据 Atom 的插件 activate-power-mode 的效果移植到 IDEA 上。写代码是整个屏幕都在抖动,activate-power-mode 是白的的,Power mode II 色彩更酷炫点。 - **Background Image Plus** idea 背景修改插件,让你的 idea 与众不同,可以设置自己喜欢的图片作为 code 背景。 安装成功之后重启,菜单栏的 View 标签 -> 点击 Set Background Image(没安装插件是没有这个标签的),在弹框中路由选择到本地图片,点击 OK 即可。 - **Grep console** 自定义日志颜色,idea 控制台可以彩色显示各种级别的 log,安装完成后,在 console 中右键就能打开。并且可以设置不同的日志级别的显示样式。可以直接根据关键字搜索你想要的,搜索条件是支持正则表达式的。 - **Free Mybatis plugin** mybatis 插件,让你的 `mybatis.xml` 像 java 代码一样编辑。我们开发中使用 mybatis 时时长需要通过 mapper 接口查找对应的 xml 中的 sql 语句,该插件方便了我们的操作。 安装完成重启 IDEA 之后,我们会看到 code 左侧或多出一列绿色的箭头,点击箭头我们就可以直接定位到 xml 相应文件的位置。 - **MyBatis Log Plugin** mybatis 现在是 java 中操作数据库的首选,在开发的时候,我们都会把 mybatis 的脚本直接输出在 console 中,但是默认的情况下,输出的脚本不是一个可以直接执行的。如果我们想直接执行,还需要在手动转化一下。MyBatis Log Plugin 这款插件是直接将 mybatis 执行的 sql 脚本显示出来,无需处理,可以直接复制出来执行的。执行程序后,我们可以很清晰的看到我们执行了哪些 sql 脚本,而且脚本可以执行拿出来运行。 - **String Manipulation** 强大的字符串转换工具。使用快捷键,Alt+M。 ```xml 切换样式(camelCase, hyphen-lowercase, HYPHEN-UPPERCASE, snake_case, SCREAMING_SNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase) 转换为SCREAMING_SNAKE_CASE (或转换为camelCase) 转换为 snake_case (或转换为camelCase) 转换为dot.case (或转换为camelCase) 转换为hyphen-case (或转换为camelCase) 转换为hyphen-case (或转换为snake_case) 转换为camelCase (或转换为Words) 转换为camelCase (或转换为lowercase words) 转换为PascalCase (或转换为camelCase) 选定文本大写 样式反转 ``` - **Alibaba Java Coding Guidelines** 阿里巴巴代码规范检查插件,当然规范可以参考《阿里巴巴Java开发手册》。 - **Lombok** Java 语言,每次写实体类的时候都需要写一大堆的 setter,getter,如果 bean 中的属性一旦有修改、删除或增加时,需要重新生成或删除 get/set 等方法,给代码维护增加负担,这也是 Java 被诟病的一种原因。 Lombok 则为我们解决了这些问题,使用了lombok的注解(@Setter,@Getter,@ToString,@@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要编写或生成 get/set 等方法,很大程度上减少了代码量,而且减少了代码维护的负担。 安装完成之后,在应用Lombok的时候注意别忘了需要添加依赖,maven 为例: ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> ``` ```java @Setter @Getter @ToString @EqualsAndHashCode public class People { private String name; private int age; private String male; } ``` - **Key promoter** Key promoter 是 IntelliJ IDEA 的快捷键提示插件,会统计你鼠标点击某个功能的次数,提示你应该用什么快捷键,帮助记忆快捷键,等熟悉了之后可以关闭掉这个插件。 - **Gsonformat** 可根据 json 数据快速生成 java 实体类。 自定义个 javaBean(无任何内容,就一个空的类),复制你要解析的 Json,然后 alt+insert 弹出如下界面或者使用快捷键 Alt+S,在里面粘贴刚刚复制的 Json,点击 OK 即可。 - **Restfultookit** Spring MVC 网页开发的时候,我们都是通过 requestmapping 的方式来定义页面的 URL 地址的,为了找到这个地址我们一般都是 cmd+shift+F 的方式进行查找,大家都知道,我们 URL 的命名一个是类requestmapping+方法requestmapping,查找的时候还是有那么一点不方便的,restfultookit 就能很方便的帮忙进行查找。 例如:我要找到 /user/add 对应的 controller,那么只要 Ctrl+斜杠,就能直接定位到我们想要的 controller。当然 restfultookit 还为我们提供的其他的功能。 - **JRebel** JRebel 是一种热部署生产力工具,修改代码后不用重新启动程序,所有的更改便可以生效。它跳过了 Java 开发中常见的重建、重新启动和重新部署周期。 --- ### 一、官方工具 IntelliJ IDEA 默认安装并提供了非常多的工具,比如 Git Integration、Maven Integration、Markdown support、SSH Remote Run 等。其中有很多好用,但是不为人知的工具。 #### 1. REST client 在日常开发过程中,我们或多或少都涉及到 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 插件。详细使用文档,参考:[http://blog.720ui.com/2018/restclient_use/](http://blog.720ui.com/2018/restclient_use/) #### 2. UML Support 如果需要研究源码,内置 UML Support 插件可以很好地查看类继承关系。详细使用文档,参考:[https://www.jetbrains.com/help/idea/class-diagram.html](https://www.jetbrains.com/help/idea/class-diagram.html) 未完待续… ### 二、市场插件 - 阿里代码规约检测 - 快捷键提示工具:Key promoter X - 代码注解插件: Lombok - 代码生成工具:CodeMaker - 单元测试测试生成工具:JUnitGenerator - Mybatis 工具:Free Mybatis plugin - Maven辅助神器:Maven Helper - JSON转领域对象工具:GsonFormat - 领域对象转JSON工具:POJO to JSON - 时序图生成工具:SequenceDiagram - 字符串工具:String Manipulation - 代码作色工具:Rainbow Brackets - RESTful 服务开发辅助工具集: RestfulToolkit - 日志工具:Grep Console - 生成对象set方法:GenerateAllSetter - Redis可视化:Iedis - K8s工具:Kubernetes - 中英文翻译工具:Translation #### 1. 阿里代码规约检测 《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结, 经历了多次大规模一线实战的检验及不断完善, 系统化地整理成册。当然,规范只能提供参考,我们还需要工具来帮忙我们实现了实时检测。目前,Alibaba Java Code Guidelines 插件实现了开发手册中的的 53 条规则,大部分基于 PMD 实现,其中有 4 条规则基于 IDEA 实现,并且基于 IDEA Inspection 实现了实时检测功能。部分规则实现了 Quick Fix 功能。目前,插件检测有两种模式:实时检测、手动触发。详细使用文档,参考:[https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md](https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md) - 阿里巴巴 Java 开发手册(详尽版): [https://github.com/alibaba/p3c/blob/master/](https://github.com/alibaba/p3c/blob/master/) 阿里巴巴 Java 开发手册(详尽版).pdf - GitHub : [https://github.com/alibaba/p3c](https://github.com/alibaba/p3c) - IDEA 插件地址:[https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines](https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines) 此外,类似的插件还有 FindBugs 和 CheckStyle。 #### 2. 快捷键提示工具:Key promoter X Key Promoter X 是一个快捷键提示插件,如果鼠标操作是能够用快捷键替代,Key Promoter X 会提示可以用什么快捷键替代。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/9792-key-promoter-x](https://plugins.jetbrains.com/plugin/9792-key-promoter-x) #### 3. 代码注解插件: Lombok lombok 的使用,参考 :[https://projectlombok.org/](https://projectlombok.org/)。我们需要在代码中引入二方库,然后安装 lombok 插件即可。 ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>最新版本号</version> </dependency> ``` #### 4. 代码生成工具:CodeMaker 开发过程中,经常手工编写重复代码。现在,可以通过 CodeMaker 来定义 Velocity 模版来支持自定义代码模板来生成代码。目前,CodeMaker 自带两个模板。Model:根据当前类生成一个与其拥有类似属性的类,用于自动生成持久类对应的领域类。Converter:该模板需要两个类作为输入的上下文,用于自动生成领域类与持久类的转化类。详细使用文档,参考:[https://github.com/x-hansong/CodeMaker](https://github.com/x-hansong/CodeMaker) #### 5. 单元测试测试生成工具:JUnitGenerator 单元测试是必不可少的!我们可以使用 JUnitGenerator 插件来自动创建了单元测试。我们可以使用提供的 velocity 模板定制单元测试输出代码。如果在已经存在单元测试的地方创建了单元测试,则会提示用户进行覆盖或合并操作。合并操作允许用户有选择地创建目标文件内容。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0](https://plugins.jetbrains.com/plugin/3064-junitgenerator-v2-0) #### 6. Mybatis 工具:Free Mybatis plugin 现在,MyBatis 框架已占领半壁江山。因此,围绕着 MyBatis 的插件和工具越来越多。Free Mybatis plugin 非常方便进行 Mapper 接口和 XML 文件之间跳转。详细使用文档,参考: [https://plugins.jetbrains.com/plugin/8321-free-mybatis-plugin](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/](http://www.mybatis.org/generator/) #### 7. Maven辅助神器:Maven Helper 如果 Maven 引入的 jar 包有冲突,可以使用 Maven Helper 插件来帮助分析。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/7179-maven-helper](https://plugins.jetbrains.com/plugin/7179-maven-helper) #### 8. JSON转领域对象工具:GsonFormat 在开发过程中,我们可能会遇到 json 格式的字符串转换成实体类参数的场景,这个插件可以根据 JSONObject 格式的字符串,自动生成实体类参数。详细使用文档,参考:[https://github.com/zzz40500/GsonFormat](https://github.com/zzz40500/GsonFormat) 那么,如何使用呢?我们可以使用 GsonFommat 的快捷键,默认 option + s (mac), alt + s (win) 通过以下方式修改快捷键。或者点击工具栏的 Generate 来唤起生成工具。 #### 9. 领域对象转JSON工具:POJO to JSON 为了测试需要,我们需要将简单 Java 领域对象转成 JSON 字符串方便用 postman 或者 curl 模拟数据。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/9686-pojo-to-json](https://plugins.jetbrains.com/plugin/9686-pojo-to-json) #### 10. 时序图生成工具:SequenceDiagram 有的时候,我们需要梳理业务逻辑或者阅读源码。从中,我们需要了解整个调用链路,反向生成 UML 的时序图是强需求。其中,SequenceDiagram 插件是一个非常棒的插件。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/8286-sequencediagram](https://plugins.jetbrains.com/plugin/8286-sequencediagram) #### 11. 字符串工具:String Manipulation String Manipulation 插件提供了非常丰富字符串工具,例如命名替换( (camelCase, kebab-lowercase, KEBAB-UPPERCASE, snakecase, SCREAMINGSNAKE_CASE, dot.case, words lowercase, Words Capitalized, PascalCase)等。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/2162-string-manipulation](https://plugins.jetbrains.com/plugin/2162-string-manipulation) #### 12. 代码作色工具:Rainbow Brackets Rainbow Brackets 插件可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/10080-rainbow-brackets](https://plugins.jetbrains.com/plugin/10080-rainbow-brackets) 事实上,代码作色之后,可以非常方便我们阅读。类似的工具还有:Grep Console 来自定义设置控制台输出颜色等。 #### 13. RESTful 服务开发辅助工具集: RestfulToolkit 开发中,经过会根据 URI 的部分信息来查找对应的 Controller 中方法,RestfulToolkit 提供了一套 RESTful 服务开发辅助工具集,提供了如下功能: 根据 URL 直接跳转到对应的方法定义 ( Ctrl \ or Ctrl Alt N ); 提供了一个 Services tree 的显示窗口; 一个简单的 http 请求工具; 在请求方法上添加了有用功能: 复制生成 URL;,复制方法参数... 其他功能: java 类上添加 Convert to JSON 功能,格式化 json 数据 ( Windows: Ctrl + Enter; Mac: Command + Enter )。 详细使用文档,参考:[https://plugins.jetbrains.com/plugin/10292-restfultoolkit](https://plugins.jetbrains.com/plugin/10292-restfultoolkit) #### 14. 日志工具:Grep Console 参考:[https://plugins.jetbrains.com/plugin/7125-grep-console](https://plugins.jetbrains.com/plugin/7125-grep-console) 不同级别日志通过颜色区分,一路了然 #### 15. 生成对象set方法:GenerateAllSetter 开发中,有时可以通过BeanUtil等工具类进行对象之间的属性拷贝,但有时候也需要手工进行赋值。通过GenerateAllSetter,可以一键生成对象的所有 set 语句。 #### 16. Redis可视化:Iedis 参考:[https://plugins.jetbrains.com/plugin/9228-iedis](https://plugins.jetbrains.com/plugin/9228-iedis) 使用参考:[https://codesmagic.com/iedis/userguide/getting-started](https://codesmagic.com/iedis/userguide/getting-started) 可方便的执行增删查改及使用命令行进行操作。 #### 17. K8s工具:Kubernetes 参考:<https://plugins.jetbrains.com/plugin/10485-kubernetes》 支持编辑 Kubernetes 资源文件,如下: 可以比较方便的查看 yaml 中的各项 placeholder 的默认值,且可以方便的链接到 value 位置。 #### 18. 中英文翻译工具:Translation 最骚的操作是什么?帆哥在群里分享了一套「半中文编程」:说到了变量命名,先用中文写好,然后用 Translation 插件的 translate and replace 一键替换为英文,这样效率高而且准确。详细使用文档,参考:[https://plugins.jetbrains.com/plugin/8579-translation](https://plugins.jetbrains.com/plugin/8579-translation) > *From:[IntelliJ IDEA 常用插件一览,让效率成为习惯](https://mp.weixin.qq.com/s/zyIKY0Bc7DXic7kQN-zuRA)* ## 😋 Intellij PyCharm - Statistic - 统计各类文件,对象个数,文件大小,行数等等属性信息。安装和使用参考:[IDEA 代码统计插件 --- Statistic](https://blog.csdn.net/u014430366/article/details/77574222) --- - [dawnlabs/carbon](https://github.com/dawnlabs/carbon/blob/master/docs/README.cn.zh.md) > Carbon 是一个免费的开源库,用于创建和分享源代码的美丽图像。 > > 如何使用:[使用Carbon和Polacode从你的编辑器创建代码截图](https://segmentfault.com/a/1190000014579171) > > 使用说明:[中文简体版](https://github.com/dawnlabs/carbon/blob/master/docs/README.cn.zh.md) > > - 在线使用:https://carbon.now.sh/ > - VS Code 中安装插件使用:[Polacode](https://marketplace.visualstudio.com/items?itemName=pnp.polacode) > - IntelliJ IDEA 中安装插件使用: [carbon-now-sh](https://plugins.jetbrains.com/plugin/10469-carbon-now-sh) > - [nvbn/thefuck](https://github.com/nvbn/thefuck) > The Fuck 是一款用于检查上一条出错的指令中的错误,并提供修正选项的软件。它不仅适合新手学习和了解自己的错误,同样也适合一个稳固在一个 Linux 发行版上突然要使用另一个发型版不适应的老鸟。The Fuck 不仅支持 Linux 发行版,还支持 macOS 和 FreeBSD。安装参考:[https://www.mf8.biz/thefuck/](https://www.mf8.biz/thefuck/) > > 了解下:[又是一个名叫草泥马的项目:thefuck](https://segmentfault.com/a/1190000002740344) >