共计 4868 个字符,预计需要花费 13 分钟才能阅读完成。
随着业务的倒退,零碎会越来越宏大,本来简略稳固的性能,可能在一直迭代后复杂度回升,潜在的危险也随之裸露,导致最终服务不稳固,造成业务价值的损失。而为了缩小这种状况,其中一种比拟好的形式就是进步代码品质,比方通过代码审查,从而升高谬误危险,然而,代码审查难度大,代码缺点、破绽不易发现,且审查工作随着代码量减少而减少,审查效率低。
工欲善其事,必先利其器,因而,这篇文章给大家介绍几种查看代码品质的利器,Alibaba Java Coding Guidelines、CheckStyle、PMD、FindBugs、SonarLint,让你在关注代码品质的同时,缩小 code review 的工作量,进步 code review 的效率,并通过代码品质剖析去反向晋升咱们的代码编写能力
一、Alibaba Java Coding Guidelines
1、整体介绍:
Alibaba Java Coding Guidelines 专一于 Java 代码标准,目标是让开发者更加不便、疾速标准代码格局。该插件在扫描代码后,将不合乎规约的代码按 Blocker、Critical、Major 三个等级显示进去,并且大部分能够主动修复,它还基于 Inspection 机制提供了实时检测性能,编写代码的同时也能疾速发现问题所在。
阿里巴巴规约扫描包含:
- OOP 规约
- 并发解决
- 管制语句
- 命名规约
- 常量定义
- 正文标准
2、装置步骤:
File > Settings > Plugins > Marketplace
搜寻“Alibaba Java Coding Guidelines
”,依照提醒进行装置,而后重启即可。
3、应用阐明:
3.1、运行形式:
(1)能够 Tools > 阿里编码规约 > 编码规约扫描
(2)在编辑界面或者我的项目区域点击右键,在右键菜单中选择“编码规约扫描”即可:
3.2、菜单性能:
- 编码规约扫描:开始扫描代码
- 关上 / 敞开实时检测性能:实时检测代码,个别机器性能比拟好的话能够开启这项性能
- 切换语言至英文:中英文切换
3.3、运行后果:
扫描实现后显示后果如下,咱们能够看到扫描后果次要分为 Blocker(阻挡者)、Critical(重大问题)、Major(次要的)三个大类,它们示意的是问题的重大水平,重大水平由高到低为:Blocker > Critical > Major
,至于每一类中都会蕴含什么样的问题,图中的内容曾经阐明了所有。
选中其中的一个问题我的项目,会呈现如下内容(如果以后鼠标点击的是最终项,左边区域显示的是其它的内容,前面会再讲到):
(1)指定区域搜寻同一类问题:
当点击③处的按钮时,会弹出如下按钮:
这里抉择扫描区域,来扫描鼠标选中的同类问题。如果依照默认抉择,那么运行后的后果就如下图所示:
这里咱们能够看到,显示了整个 Project 中的所有该类的问题。
(2)预览具体的不标准代码:
如果点击的是最终的问题点或者问题所在的类文件,那显示的就是如下界面,预览该处不标准的代码。
3.4、工具栏性能介绍:
Rerun Inspection
:从新运行一次扫描Close
:敞开真个 AJCG 面板Expand All
:开展后果的树状构造,整个后果是树状构造的。Collapse All
:收起后果的树状构造Go Pre Problem
:抉择上一个问题Go Next Problem
:抉择下一个问题Help
:帮忙Group by Serverity
:(不晓得如何形容)Group by derectory
:按目录分组 / 按类名分组间切换Filter resoled items
:过滤掉曾经解决的项Autoscroll to Source
:主动滚动到源码Export
:导出,能够导出为 XML 和 HTML 两种格局Edit Settings
:编辑设置
二、CheckStyle:
1、整体介绍:
CheckStyle 偏重查看编码格局和代码格调标准,如命名标准、Javadoc 正文标准、空格标准、size 度量(如过长的办法)、反复代码、多余 Imports 等,从而无效束缚开发人员更好地遵循代码编写标准。Checkstyle 次要是文法层面的代码编写标准的剖析,对 bug 简直没什么发现能力。
Checkstyle 插件中默认内置有 2 个执行代码查看的配置文件(Sun Checks 和 Sun Checks),然而这两个文件查看的十分具体严格,即便优良的开源我的项目也会查看进去有十分多的谬误告信息,所以须要导入咱们自定义的配置文件。
2、装置步骤:
通过 File > Settings > Plugins > Marketplace
搜寻“CheckStyle”,依照提醒进行装置,而后重启即可。
3、应用阐明:
能够看到根本都是一些缩进啥的编码标准,能够不必太关注
三、PMD
1、整体介绍:
PMD 偏重面向平安编码规定,且具备肯定的数据流剖析和路径分析能力,能力比 CheckStyle 略微强点,并且 PMD 反对自定义规定,PMD 能够间接应用的规定包含以下内容:
- 潜在的 bug:空的
try/catch/finally/switch
语句 - 未应用的代码(Dead code):未应用的变量、参数、公有办法等
- 可选的代码 :
String/StringBuffer
的滥用 - 简单的表达式:不必须的 if 语句、可被 while 代替的 for 循环
- 反复的代码:拷贝 / 粘贴代码意味着拷贝 / 粘贴 bugs
- 循环体创立新对象:尽量不要在循环体内实例化新对象
- 资源敞开:Connect,Result,Statement 等应用之后确保敞开掉
2、装置步骤:
通过 File > Settings > Plugins > Marketplace
搜寻“PMDPlugin
”,依照提醒进行装置,而后重启即可
3、应用阐明:
- 参考文章:http://wjhsh.net/andy-songwei…
3.1、运行形式:
(1)从 Tools 菜单中启动:
通过 Tools > Run PMD
能够看到如下的界面,如果通过该形式启动,扫描的范畴就是整个我的项目中的文件了。
- Pre Defined:预约义的规定,也就是插件自带的检测规定。前面开展的列表中列出了所有的规定列表,想扫描哪一种类型的问题,点击即可。其中“All”示意应用所有的规定。
- Custom Rules:自定义的检测规定,PMD 容许用户依据须要自定义查看规定,默认这里是不可点击的,须要在设置中导入自定义规定文件前方可抉择。
(2)从右键菜单中启动:
在文件或者编辑器中点击右键,也能够看到“Run PMD”选项,如果通过该形式启动,检测范畴取决于鼠标或光标以后所选中的区域。
3.2、运行后果:
运行后会呈现如上所示的面板,右边工具栏,鼠标停留在下面会提醒其性能;左边显示了检测后果,当点击具体某一问题项时,会跳转到对应的源码中。
3.3、配置检测规定:
通过 File > Settings > Other Settings > PMD
能够关上检测规定的设置界面:
在“RuleSets(规定设置)”界面能够治理自定义的检测规定。因为在理论工作中,可能须要依据理论状况自定义检测规定,就能够通过这里导入,如果要应用它,须要在启动 PMD 进行检测时抉择该自定义规定。
点击“Options”选项卡,在其中能够配置一些检测规定选项:
其中重点须要注意的是“Skip TestSource”这一项,因为在我的项目中有不少 Android Studio 主动生成的测试代码,如下所示,抉择上述选项后能够将其过滤掉。
另外,IDEA 正版激活办法,可参考我之前分享的教程:https://www.javastack.cn/intellij-idea-reactivation-succeed/
四、FindBugs:
1、整体介绍:
FindBugs 侧重于发现代码中存在的 bug,如运行时谬误检测(空指针查看、未正当敞开资源、字符串雷同判断错(==,而不是 equals)等),它能够简略高效全面地帮忙咱们发现程序代码中存在的 bug 以及潜在隐患,针对各种问题,它提供了简略的修改意见供咱们参考
2、装置步骤:
通过 File > Settings > Plugins > Marketplace
搜寻“FindBugs”,依照提醒进行装置,而后重启即可
3、应用阐明:
FindBugs 能够剖析单个文件、包上面的所有文件、整个 module 下的文件、整个 project 下的文件,右键想要剖析的文件名 / 包名 /module
名/project
剖析完之后就会呈现后果面板
点击对应的 item 在左边会定位到具体的代码,这是依据提醒进行解决批改就行
4、附:常见的错误信息
4.1、Bad practice 代码坏习惯:
4.2、Dodgy code 蹩脚的代码:
4.3、Internationalization 代码国际化相干:
4.4、Performance 代码性能相干:
4.5、Experimental:
4.6、Malicious code vulnerability 歹意毁坏代码相干:
4.7、Multithreaded correctness 多线程代码正确性相干:
4.8、Correctness 代码正确性相干:
五、SonarLint:
1、整体介绍:
sonar 比 Findbugs
高了一个层级,它不仅关注惯例动态 BUG,还关注到了如代码品质、包与包、类与类之间的依赖状况,代码耦合状况,类、办法、文件的复杂度,代码中是否蕴含大量复制粘贴的代码,关注的是我的项目代码整体的衰弱状况。sonar 有两种应用形式:插件和客户端,sonar 的插件名称为 sonarLint
。
2、装置步骤:
通过 File > Settings > Plugins > Marketplace
搜寻“SonarLint”,依照提醒进行装置,而后重启即可
3、应用阐明:
右键我的项目或者文件进行如上图所示操作,执行之后能够看到如下信息,如果代码中有不合理的中央会在 report 中显示,同时点击谬误的中央在左边会给出倡议的批改供参考。
4、配置 SonarLint 服务端:
4.1、配置 Sonar 服务器:
sonarLint
插件的应用场景是自用自审,但 sonar 也提供了平台版本,应用场景则是他审,sonar 平台的搭建就不在这篇文章介绍了,感兴趣的读者能够本人上网查看,咱们这里次要介绍如何在 sonarLint
插件中配置关联 sonar 平台服务器的工程,进行本地查看:
点击新增按钮,输出 Configuration Name
,配置sonarlint
服务器的地址,而后下拉框抉择 Login/Password
,输出 sonarlint
服务器的账号密码
4.2、具体 Sonar 工程配置:
配置完服务器之后,须要针对具体工程进行配置,点击 connection
下拉框,抉择下面配置好的服务器连贯,而后点击 Search in list
,找到对应的工程:
4.3、应用 SonarLint 查看:
配置完下面两步之后,接下来就能够抉择要进行查看的类或者目录进行 sonarlint
查看了(跟第 3 点的应用形式统一),同时,在 commit 代码的时候,勾选“Perform Sonarlint analysis
”,会针对你要提交的代码进行 sonarlint 查看
总结
- 查看代码标准的话,间接应用
Alibaba Java Coding Guidelines
就能够了 - 找 BUG 的话,应用
PMD、Findbugs、SonarLint
互相补充: PMD
自定义能力强,用来自定义我的项目 BUG 规定十分好用Findbugs
找 BUG 能力很强,咱们拿找到的 BUG 给新员工培训也很好。SonarLint
规定丰盛,比 Findbugs 能笼罩到更全的场景
版权申明:本文为 CSDN 博主「张维鹏」的原创文章,遵循 CC 4.0 BY-SA 版权协定,转载请附上原文出处链接及本申明。原文链接:https://blog.csdn.net/a745233…
近期热文举荐:
1.1,000+ 道 Java 面试题及答案整顿(2022 最新版)
2. 劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!