欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

程序员文章站 2022-07-14 08:51:40
...

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

最近,有同学问我,为什么你如此钟爱IDEA?

因为你越用越顺手,还能不断给你惊喜,让你乐此不疲的去挖掘它的功能。

就比如,我最近在*上刷到的一个帖子:How to use IntelliJ IDEA to find all unused code?

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

直译过来,就是怎么通过IDEA找到未使用过的代码?让我吃惊的是竟然有有这么多的程序员不知道有这个功能。

到这里,不得不说说IDEA中的静态代码分析能力竟然如此强大!

那咱们先来解决上面那个问题:如何找出未使用的代码?其实很简单的,就是用它的代码分析功能,菜单栏:Analyze->Run Inspection By Name(译:通过名字来检查),或者用快捷键 ctrl+alt+shift+i,如下图:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

再从下拉列表中,选择Unused declaration,如下图:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

这样便能找出未被使用的代码,而且它还提供了4中解决方案,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

这只是它代码分析功能的冰山一角,它支持许多语言的检查功能,不仅能帮我们发现代码中的编译错误,还能发现效率低下的代码问题,比如:unreachable code, unused code, non-localized string, unresolved method, memory leaks, spelling problems 等问题。

这里大家可以看到IDEA在默认情况下,会分析所有的打开文件,有问题的代码会在编辑器右侧显示,可以看到整个文件的所有分析状况,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

而且它支持灵活配置,可以自己启用/禁用某个代码检查行为,改变问题的严重等级,创建自定义的检查配置问题,根据需求选择检查范围,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

下面我来整体解读一下它的静态代码分析功能。

1、代码规范检查

打开 Analyze -> Inpect Code,检查代码是否符合 Settings -> Inspections 的设置,检查结果如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

2、检查指定的 Inspections 项

打开 Analyze -> Run Inspection By Name,输入要检查的项,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

3、推断无效代码 

打开 Analyze -> Infer Nullity,可以分析无效代码,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

4、分析代码依赖

打开 Analyze -> Analyze Dependencies,查看依赖结果,如下图所示

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

5、分析代码反向依赖

打开 Analyze -> Analyze Backward Dependencies,查看反向依赖结果,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

6、分析模块依赖

打开 Analyze -> Analyze Module Dependencies,查看模块依赖,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

7、分析 DSM 分层依赖

打开 Analyze -> Analyze Dependency Matrix,查看依赖结构矩阵,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

8、分析循环依赖

打开 Analyze -> Analyze Cyclic Dependencies,查看循环依赖关系,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

9、分析堆栈跟踪信息

打开 Analyze -> Analyze Stacetrace,输入堆栈信息,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

10、Analyze Dataflow to Here

它展示了这个变量的值是从哪些地方传递过来的,并且包含传递给改变了的值是那里传递过来的,值的传递链,如下图所示:

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

11、Analyze Dataflow to Here

它展示了这个变量的值传递到了哪些地方,并且包含传递之后的值又被传递到哪些地方去了,值的传递链。

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...

总得来说,IDEA给我们提供的分析功能已经足够用了,但是还有一些第三方的插件可供我们使用,比如FindBugs、alibaba-java-coding-guidelines等。

IDEA确实有趣,咱们一起来玩转它,哈哈~~~

推荐阅读

介绍一款贼美的Vue+Element开源后台管理UI

骚操作:不重启 JVM,如何替换掉已经加载的类?

放弃Spring Boot 中的 RestTemplate,我选择 Retrofit !

腾讯 Git 规范出炉,写给开发者的指南!

最棒 Spring Boot 干货总结(超详细,建议收藏)

我的天,Spring Boot 居然还有 Plus 版本

恕我直言,IDEA的这个分析功能,只有不到10%的程序员知道...