有一段时间没去电影院了,上次看的还是战争题材的《八佰》,现在还能记得当时的观影感受:热血沸腾的同时,一种宁死不屈的信念从心底油然而生。战场虽然只有四行仓库那么大点的地方,却显得牢不可破,敌人再凶猛的火力,似乎都无法有所突破。

作为和代码打交道的我们,天敌除了乱改需求的“产品经理”(请老老实实地背锅),还有那无穷无尽永远也修改不完的 bug。为了抵御 bug 的侵扰,我们想尽了各种办法,不停地修缮工地,努力让我们的代码变得牢不可破。

这些努力当中,有 3 款优秀的 IDE 插件功不可没。是哪 3 个呢?请腰杆挺直,眼睛睁大,大声呼喊出它们的名字。

01、CheckStyle

Checkstyle 是一个静态代码分析工具,用来检查 Java 源代码是否符合编码规则。

那编码规则由谁定义才能比较被认可呢?

除了 Sun,还有谷歌,可以吧?感兴趣的小伙伴可以通过下面的地址阅读一下谷歌的 Java 代码规范。

https://google.github.io/styleguide/javaguide.html

可以在 Intellij IDEA 的插件市场里直接安装 CheckStyle 这个插件。

点击 OK 后,就可以在 Intellij IDEA 的底部看到「CheckStyle」面板,默认支持 Sun 和谷歌的代码规范。

选择一种规则后,可以点击左侧的 2 个小图标对项目或者模块进行检查(也可以使用右键「Check Current File」 检查当前类文件),然后就可以看到修改建议了。

不过,输出的信息里有大量对代码缩进的建议,是因为 CheckStyle 默认的缩进规则是使用 2 个空格,但我更习惯使用 4 个空格,能不能自定义一下呢?

当然可以。

第一步,按照下面的路径把 CheckStyle 的 GitHub 仓库导入到码云(可以提高克隆速度)。

https://github.com/itwanger/checkstyle

第二步,使用 GitHub 桌面版把导入后的仓库 clone 到本地。

PS:我已经克隆过了,所以会有警告提示。

第三步,找到 src/main/resources/google_checks.xml 文件,修改 Indentation(缩进)元素后保存。

<module name="Indentation"><property name="basicOffset" value="4"/><property name="braceAdjustment" value="0"/><property name="caseIndent" value="4"/><property name="throwsIndent" value="4"/><property name="lineWrappingIndentation" value="4"/><property name="arrayInitIndent" value="4"/>
</module>

第四步,打开 Intellij IDEA 的首选项,找到「Tools」→「Checkstyle」。

点击「Configuration File」 栏目底部的「+」号,自定义 Checkstyle 规则。填写「Description」,并将之前复制的路径粘贴到「URL」中,点击「Next」。

第五步,配置成功后,在「CheckStyle」面板看到我们自定义的检查规则了。选中后,再次扫描,就可以看到缩进的警告信息消失了。

如果团队内部使用的话,也可以在谷歌和 sun 的代码规约基础上进行一些调整,从而更符合团队开发的习惯,同时还能起到统一代码规范的作用,美哉美哉。

02、Alibaba Java 代码规范

《阿里巴巴 Java 开发手册》自从第一个版本起,就倍受业界关注,毕竟是阿里出品啊。最新版是嵩山版,离线下载地址我贴一下:

https://pan.baidu.com/s/1iBVFWUPuJNFEBfG8cmd-aA 密码:pplh

我看了很多遍,有些规约已经深深地刻在脑海里,在写代码的时候就会特别注意。甚至有时候写完代码,都要对照一遍规约,看看有哪些细节需要调整。

为了让开发者更加方便、快速的将规范推动并执行起来,阿里巴巴基于这本手册的内容,研发了一套自动化的 IDE 插件(有 Intellij IDEA 和 Eclipse 两个版本)。

Intellij IDEA 可以直接在插件市场进行下载安装。

目前插件检测有两种模式:实时检测和手动触发。

1)实时检测

《阿里巴巴 Java 开发手册》的第一条规约如下:

实时检测是默认开启的,我们来“明知故犯”一下:

在编码的时候,插件就会及时的给出提示建议,说【_name】命名不能以_或$开始

如果不喜欢实时检测的话,可以通过「Tools」→「阿里编码规约」→「关闭实时检测功能」来进行关闭。

2)手动触发

在代码编辑区域右键菜单选择「编码规约扫描」就可以对当前文件进行扫描,也可以选择整个项目或者某个目录进行扫描。

插件扫描后,会将一些不合手册上面的代码按照 Blocker/Critical/Major 三个等级显示出来,点击某个修改建议可以直接跳转到对应的代码处,这样的话,修改起来就非常便捷了。

03、SonarLint

SonarLint 可让我们在编写代码的时候就对错误和漏洞进行修复,像拼写检查器一样,可以即时突出地显示出编码中的一些问题,并提供清晰的补救指导,方便我们在提交代码之前就解决它们。

SonarLint 支持很多种语言,包括 Java、Kotlin、JavaScript、Ruby、Python、PHP 等等。也支持很多种 IDE,包括 Eclipse、Intellij IDEA、Visual Studio、VS Code 等等。

Intellij IDEA 可以在插件市场直接安装。

SonarLint 默认也是开启实时检查的,当我们在声明 List 的时候没有使用泛型,它不仅指出了问题,还给出了修改建议,甚至示例都写好了,真贴心。

04、总结

好的编程规范有助于写出易于阅读、质量更高、错误更少、更易于维护的程序。CheckStyle、Alibaba Java 代码规范、SonarLint 这 3 款 Intellij IDEA 插件能在很大程度上帮助我们达到这个目的。

另外,如果你在 Intellij IDEA 插件市场中下载这 3 款插件的时候速度比较慢的话,可以通过下面的方式进行下载,我已经贴心地替你打包好了。

链接:https://pan.baidu.com/s/1W9AsoLrBJTEtE9JTJlqNXw 密码:pa92

下载完成后,可以在 Intellij IDEA 的插件市场选择本地路径的方式进行安装。

直接选择对应的 zip 包就可以安装了。

希望能对小伙伴们有所帮助,尽快安排一下吧,从此 bug 离我们远一点,少一点。最后,别忘了一键三连啊,笔芯~

硬核,这 3 款 IDE 插件让你的代码牢不可破相关推荐

  1. 插件显示缩进_硬核,这 3 款 IDE 插件让你的代码牢不可破

    01.CheckStyle Checkstyle 是一个静态代码分析工具,用来检查 Java 源代码是否符合编码规则. 那编码规则由谁定义才能比较被认可呢? 除了 Sun,还有谷歌,可以吧?感兴趣的小 ...

  2. 让开发部署提速 8 倍,我参与贡献这款 IDE 插件的全过程

    如何像参与开源那样,去参与一款 IDE 插件的设计? 作为一款 IDE 插件的使用者,我是否能决定下一个版本的功能? 自从产品经理银时小伙和他的开发小哥们在去年12月发布 Cloud Toolkit( ...

  3. 让开发部署提速 8 倍,徐妈参与贡献这款 IDE 插件的全过程

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 N ...

  4. 开发部署提速8倍!这款IDE插件了解一下?

    对于开发者而言,提高工作效率大概有 2 种主要方式,第一种方式就是加快自己的工作速度,争取在同一段时间内多码一些代码.多干一些活来实现多产:而聪明的开发者会选择第二种方式,就是通过插件,让一些重复性的 ...

  5. 这款 IDE 插件再次升级,让「小程序云」的开发部署提速 8 倍

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 今年3月份,在阿里云北京峰会上,阿里巴巴正式发布了"阿里巴巴小程序繁星计划&quo ...

  6. 最硬核的图片批量下载插件-图片助手(ImageAssistant)

    图片助手(ImageAssistant) 今天为大家推荐一下图片助手下载插件,这是我每天下图都要用到的,使用频率比较高的一个插件. 我们在浏览网页的时候,有时需要把当前网页中的所有图片一次性下载完成, ...

  7. #实现拖拉文件_硬核测评7款主流农用拖拉机:“小鹿”?甩了对手N条街

    欧洲的TREKKER Magazine对目前市场上的主流农用拖拉机的ISOBUS功能进行了测试.这是一个专注于软件的冗长过程,所以长话短说,每台拖拉机ISOBUS系统都能正常运行,但最大的区别在于用户 ...

  8. 强推!盘点阿里巴巴 15 款开发者工具 | 程序员硬核评测

    戳蓝字"CSDN云计算"关注我们哦! 程序员硬核评测:客观.高效.不说软话.无论是技术质量.性能水平,还是工具筛选,一测便知! 从人工到自动化,从重复到创新,技术演进的历程中,伴随 ...

  9. 正版鬼泣手游服务器,爆款频出!永劫无间+鬼泣正版手游,国内掀起硬核游戏风潮...

    如果说,2020年<原神>成为炙手可热的现象级游戏,让二次元成为席卷全球的"财富密码"的话,那么2021年开始,各类硬核游戏的出色表现,则在国内掀起硬核风潮,猛男游戏登 ...

最新文章

  1. 持久层是什么意思_软件项目实训及课程设计指导—如何在数据持久层中应用DAO模式...
  2. PyODPS学习:使用DataFrame实现SQL的IF判断
  3. 如何在 SAP 电商云 Spartacus UI 中创建新的页面
  4. jmete 学习--基础之名词解释
  5. ant4 多个form 验证_爬虫遇到头疼的验证码?Python实战讲解弹窗处理和验证码识别...
  6. Python 第三方模块之 PDFMiner(pdf信息提取)
  7. java类成员方法(成员函数)的初步介绍
  8. 第三次小组实践作业小组每日进度汇报:2017-12-3
  9. 同样学软件测试,为什么有些人一面试就拿一堆大厂offer?
  10. 广发证券数据治理的探索与实践
  11. 黑马程序员pink老师_CSS学习笔记
  12. excel职称计算机考试题怎么做,职称计算机考试EXCEL试题「附答案」
  13. 未来教育计算机二级题库如何更新,未来教育的计算机二级题库准吗?
  14. 制作网站及论坛的过程
  15. 【Python标准库】用了Secrets,再也不用担心密码泄露
  16. MCAL系列介绍04-GPT
  17. android 判断图片的格式的,android判断文件是否是图片文件的方法
  18. Sentinel-3数据下载流程
  19. Python程序设计基础(第2版)by董付国 习题答案
  20. 【Cat.1模组】 广和通L610 基于OpenCPU的SDK二次开发

热门文章

  1. 关于电脑网络显示红叉的解决方法
  2. 用python写一个自动注册脚本_python实现自动登录
  3. Steam账号注册--流程
  4. Linux下套接字详解(七)----线程池accept处理高并发connect
  5. sqlserver 数据误删除恢复
  6. Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
  7. Java设计模式全集-工厂模式系列(Factories)
  8. 模拟电路实验 01 - | 基本共射放大电路
  9. 【关于3D-R2N2的配置和使用】
  10. jq查找div下的第二个span