@

目前的话,我(Guide哥)是在 Github 开源了两个轮子,一个简易的 RPC 框架,一个轻量级的 HTTP 框架。代码结构清晰,实现优雅(这个自夸就很不要脸),感兴趣的小伙伴可以看一下。

在写代码的时候,有几个 IDEA 插件对于我规范代码以及更高效地完成编码工作有奇效。

那今天就简单聊聊我平时写代码过程中,有哪些 IDEA 插件对我帮助最大吧!

Codota:代码智能提示

我一直在用的一个插件,可以说非常好用了(我身边的很多大佬平时写代码也会用这个插件)。

Codota 这个插件用于智能代码补全,它基于数百万Java程序,能够根据程序上下文提示补全代码。相比于IDEA自带的智能提示来说,Codota 的提示更加全面一些。

如果你觉得 IDEA 插件安装的太多比较卡顿的话,不用担心!Codota 插件还有一个对应的在线网站(https://www.codota.com/code),在这个网站上你可以根据代码关键字搜索相关代码示例,非常不错!

我在工作中经常会用到,说实话确实给我带来了很大便利,比如我们搜索 Files.readAllLines相关的代码,搜索出来的结果如下图所示:

另外,Codota 插件的基础功能都是免费的。你的代码也不会被泄露,这点你不用担心。

简单来看看 Codota 插件的骚操作吧!

代码智能补全

我们使用HttpUrlConnection 建立一个网络连接是真的样的:

我们创建线程池现在变成下面这样:

上面只是为了演示这个插件的强大,实际上创建线程池不推荐使用这种方式, 推荐使用 ThreadPoolExecutor 构造函数创建线程池。我下面要介绍的一个阿里巴巴的插件-Alibaba Java Code Guidelines 就检测出来了这个问题,所以,Executors下面用波浪线标记了出来。

代码智能搜索

除了,在写代码的时候智能提示之外。你还可以直接选中代码然后搜索相关代码示例。

Alibaba Java Code Guidelines:阿里巴巴 Java 代码规范

阿里巴巴 Java 代码规范,对应的Github地址为:https://github.com/alibaba/p3c 。非常推荐安装!

安装完成之后建议将与语言替换成中文,提示更加友好一点。

根据官方描述:

目前这个插件实现了开发手册中的的53条规则,大部分基于PMD实现,其中有4条规则基于IDEA实现,并且基于IDEA Inspection实现了实时检测功能。部分规则实现了Quick Fix功能,对于可以提供Quick Fix但没有提供的,我们会尽快实现,也欢迎有兴趣的同学加入进来一起努力。 目前插件检测有两种模式:实时检测、手动触发。

上述提到的开发手册也就是在Java开发领域赫赫有名的《阿里巴巴Java开发手册》。

手动配置检测规则

你还可以手动配置相关 inspection规则:

使用效果

这个插件会实时检测出我们的代码不匹配它的规则的地方,并且会给出修改建议。比如我们按照下面的方式去创建线程池的话,这个插件就会帮我们检测出来,如下图所示。

这个可以对应上 《阿里巴巴Java开发手册》 这本书关于创建线程池的方式说明。

CheckStyle: Java代码格式规范。

为何需要CheckStyle插件?

CheckStyle 几乎是 Java 项目开发必备的一个插件了,它会帮助我们检查 Java 代码的格式是否有问题比如变量命名格式是否有问题、某一行代码的长度是否过长等等。

在项目上,通过项目开发人员自我约束来规范代码格式必然是不靠谱的! 因此,我们非常需要这样一款工具来帮助我们规范代码格式。

如果你看过我写的轮子的话,可以发现我为每一个项目都集成了 CheckStyle,并且设置了 Git Commit 钩子,保证在提交代码之前代码格式没有问题。

Guide哥造的轮子代码简洁,结构清晰,欢迎学习,欢迎一起完善):

  1. guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程)
  2. jsoncat :仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架

Git 钩子: Git 能在特定的重要动作比如commit、push发生时触发自定义脚本。 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks

如何在Maven/Gradle项目中集成 Checksytle?

一般情况下,我们都是将其集成在项目中,并设置相应的 Git 钩子。网上有相应的介绍文章,这里就不多提了。

如果你觉得网上的文章不直观的话,可以参考我上面提到了两个轮子:

  1. guide-rpc-framework :Maven项目集成 Checksytle。
  2. jsoncat :Gradle项目集成 Checksytle。

如果你在项目中集成了 Checksytle 的话,每次检测会生成一个 HTML格式的文件告诉你哪里的代码格式不对,这样看着非常不直观。通过 Checksytle插件的话可以非常直观的将项目中存在格式问题的地方显示出来。

如果你只是自己在本地使用,并不想在项目中集成 Checksytle 的话也可以,只需要下载一个 Checksytle插件就足够了。

如何安装?

我们直接在 IDEA 的插件市场即可找到这个插件。我这里已经安装好了。

安装插件之后重启 IDEA,你会发现就可以在底部菜单栏找到 CheckStyle 了。

如何自定义检测规则?

如果你需要自定义代码格式检测规则的话,可以按照如下方式进行配置(你可以导入用于自定义检测规则的CheckStyle.xml文件)。

使用效果

配置完成之后,按照如下方式使用这个插件!

可以非常清晰的看到:CheckStyle 插件已经根据我们自定义的规则将项目中的代码存在格式问题的地方都检测了出来。

SonarLint:帮你优化代码

SonarLint 帮助你发现代码的错误和漏洞,就像是代码拼写检查器一样,SonarLint 可以实时显示出代码的问题,并提供清晰的修复指导,以便你提交代码之前就可以解决它们。

并且,很多项目都集成了 SonarQube,SonarLint 可以很方便地与 SonarQube 集成。

我的开源项目推荐

  1. JavaGuide :「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!
  2. guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程)
  3. jsoncat :仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架
  4. programmer-advancement :程序员应该有的一些好习惯+面试必知事项!
  5. springboot-guide :Not only Spring Boot but also important knowledge of Spring(不只是SpringBoot还有Spring重要知识点)
  6. awesome-java :Collection of awesome Java project on Github(Github 上非常棒的 Java 开源项目集合).

我是 Guide 哥,一 Java 后端开发,会一点前端,自由的少年。我们下期再见!微信搜“JavaGuide”回复“面试突击”领取我整理的 4 本原创PDF

我是 Guide 哥,一 Java 后端开发,会一点前端,自由的少年。我们下期再见!微信搜“JavaGuide”回复“面试突击”领取我整理的 4 本原创PDF

推荐4款个人珍藏的IDEA插件!帮你写出不那么差的代码的更多相关文章

  1. 推荐几款实用的Android Studio 插件

    推荐几款实用的Android Studio 插件 泡在网上的日子 发表于 2015-10-09 10:47 第 17453 次阅读 插件,Android Studio 10 编辑推荐:稀土掘金,这是一 ...

  2. 推荐几款好用的Chrome插件

    '工欲善其事,必先利其器'.优秀的开发者不仅体现在其在技术方面的精通,还体现在其对各种开发工具的充分了解与使用,这会让其开发效率事半功倍.作为一个前端开发者,平时主要是跟浏览器打交道,Chrome浏览 ...

  3. 推荐一款非常棒的谷歌插件---快速查看HTML页面元素的CSS样式

    一.下载地址 http://chromecj.com/web-development/2015-05/456/download.html 二.简介 CssViewer是一款快速查看当前页面元素的CSS ...

  4. 推荐几款基于vue的使用插件

    1.muse-ui ★6042 - 三端样式一致的响应式 UI 库 2.vuetify ★11169 - 为移动而生的Vue JS 2组件框架 3.Vux ★12969- 基于Vue和WeUI的组件库 ...

  5. 推荐一款最强Python自动化神器!不用写一行代码!

    搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium.结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人 ...

  6. 推荐四个phpstorm酷炫实用插件 让你写代码的时候不在孤单!

    程序员写代码很孤独,每天只能和电脑屏幕交流,想要一个程序员鼓励师妹子,老板又不给配,如何让自己写代码的时候不再孤单呢?今天给大家分享的这四个插件,既实用又好玩,还能提高开发效率,这四个插件主要用到ph ...

  7. 5款工具助你写出更好的Java代码

    1.FindBugs 顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码. 它是一款静态分析工具,它检查类或者JAR ...

  8. iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)

    iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接) 这里推荐两款好用的Xcode插件,并提供下载链接. 一.插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImag ...

  9. 推荐两个好用的Xcode插件(提供下载链接)

    这里推荐两款好用的Xcode插件,并提供下载链接. 一.插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImageNamed-Xcode-master 提供快速创建自动注释:V ...

随机推荐

  1. java虚拟机5 字节码

    java字节码本质是java程序的格式化表示,便于机器处理.所以他是java程序的另一种表示,java程序包含的信息他都包含并且更加结构化. java虚拟机字节码格式: magic 魔数,标识该文件是 ...

  2. 属性序列化自定义与字母表排序-JSON框架Jackson精解第3篇

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  3. Windows批处理(cmd/bat)常用命令学习

    前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序 ...

  4. defer 延迟调用

    1. 延迟调用 defer 的用法很简单,只要在后面跟一个函数的调用,就能实现将这个  xxx 函数的调用延迟到当前函数执行完后再执行. defer xxx()   这是一个很简单的例子,可以很快帮助 ...

  5. FreeSWITCH 处理Refer盲转时,UUI传递不对(没有将SIP 消息头Refer-To中的User-to-User传递给B-Leg)

    运行环境:     CentOS 7.6     FreeSWICH 1.6.18   一.问题场景:     FreeSWITCH收到REFER命令后,重新发起的INVITE消息中的 "U ...

  6. hadoop分布式格式化时出现异常java.net.unknownhostexception

    当搭建好分布式集群后,准备使用命令格式化时 hdfs namenode format 在日志的最后一行出现 java.net.unknownhostexception的异常,通常是你的主机名没有配置好 ...

  7. python下的appium控制andriod按键

    今天查看视频的时候,发现不好控制关闭视频,于是就想控制手机的返回按键来达到返回的效果. 找到了一些关于按键的keycode,如下: KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL ...

  8. Linux安装软件方法总结

    相比于windows系统,Linux安装程序就比较复杂了,很多需要root用户才能安装.常见的有以下几种安装方法 源码安装 rpm包安装 yum安装 (RedHat.CentOS) apt-get安装 ...

  9. 刷LeetCode的简易姿势

    近期抽空刷了刷LeetCode,算是补补课. 由于不是很习惯直接在网页上Coding&Debug,所以还是在本地环境下进行编码调试,觉得基本OK后再在网页上提交. 主要采用Python3进行提 ...

  10. 50个你必须了解的Kubernetes面试问题

    Kubernetes一直是当今业界的流行语,也是最好的编排工具.它吸引了许多想要提升自己职业生涯的经验丰富的专业人士.HuaWei,Pokemon,Box,eBay,Ing,Yahoo Japan,S ...