热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java代码提示插件_推荐4款个人珍藏的IDEA插件!帮你写出不那么差的代码

目前的话,我(Guide哥)是在Github开源了两个轮子,一个简易的RPC框架,一个轻量级的HTTP框架。代码结构清晰,实

@

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

1843652-20201021190054329-1515482775.png

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

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

Codota:代码智能提示

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

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

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

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

1843652-20201021190055197-971556090.png

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

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

代码智能补全

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

1843652-20201021190056496-398351097.gif

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

1843652-20201021190057750-1605018579.gif

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

代码智能搜索

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

1843652-20201021190058074-1548370696.png

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

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

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

1843652-20201021190058785-1515173002.png

根据官方描述:

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

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

手动配置检测规则

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

1843652-20201021190059458-123822194.png

使用效果

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

1843652-20201021190059876-260929337.png

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

1843652-20201021190100296-1598656479.png

CheckStyle: Java代码格式规范。

为何需要CheckStyle插件?

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

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

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

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

guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程)

jsoncat :仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架

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

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

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

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

guide-rpc-framework :Maven项目集成 Checksytle。

jsoncat :Gradle项目集成 Checksytle。

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

1843652-20201021190100672-1947671599.png

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

如何安装?

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

1843652-20201021190101101-496936869.png

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

1843652-20201021190101679-56978397.png

如何自定义检测规则?

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

1843652-20201021190102229-1625306474.png

使用效果

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

1843652-20201021190102798-513895438.png

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

SonarLint:帮你优化代码

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

1843652-20201021190103984-424608148.png

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

我的开源项目推荐

JavaGuide :「Java学习+面试指南」一份涵盖大部分Java程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!

guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基于 Netty+Kyro+Zookeeper 实现的自定义 RPC 框架-附详细实现过程和相关教程)

jsoncat :仿 Spring Boot 但不同于 Spring Boot 的一个轻量级的 HTTP 框架

springboot-guide :Not only Spring Boot but also important knowledge of Spring(不只是SpringBoot还有Spring重要知识点)

awesome-java :Collection of awesome Java project on Github(Github 上非常棒的 Java 开源项目集合).



推荐阅读
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 前言折腾了一段时间hadoop的部署管理,写下此系列博客记录一下。为了避免各位做部署这种重复性的劳动,我已经把部署的步骤写成脚本,各位只需要按着本文把脚本执行完,整个环境基本就部署 ... [详细]
  • Zookeeper 总结与面试题汇总
    Zookeeper总结与面试题汇总,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
my76572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有