IDEA 的代码检测是真的智能,但是有些人就是不关注代码飘黄

2019-09-24 11:14:13 +08:00
 qwerthhusn

Java 静态检查工具,IDEA 自带的最智能,无论是代码优化建议还是分支检测出来的潜在的 BUG。 只要你关注代码飘黄的部分,九成都是可以优化的或者是 BUG (包括很隐晦的要自己估计很久都看不出来的),不如鼠标放上去看一下

然后就是 FindBugs,但是以我的经验,如果 IDEA 的都处理了,FindBugs 好像也扫不出来什么东西了。

PMD,CheckStyle 这种更像是代码风格检查工具。

BTW:阿里巴巴的静态代码检查,我认为这种东西新手用一下还是不错的。对于经验比较丰富的老鸟,基本上无用处。举个例子,不让你用Executors.new...而是直接去用ThreadPoolExecutor,就是为了能更好理解 Java 线程池。再举个例子,要求你把每一个@Transactional都显示指定上rollbackFor,就是为了能正确理解 Spring 事务回滚机制。


我有一个朋友,他就是没记性,去定位 BUG,最后花了很久才看出来的一个分支 BUG,而且 IDEA 都已经检测出来了。 中间我估计跟他说过不下三四次了,但是最近一看他新的代码,还是满屏密密麻麻的黄框。。。

真的很奇怪,有些人就是不长记性,也不清楚为什么,我之前的一个刚开始干的同事,不关注代码缩进,最后一大篇代码跟鸡挠的一样,甚至有多少个方法都一眼看不出来。跟他说过无数次,但是后面发现新提交的还是那样。


本来主旨是想吐槽一波不长记性的人,但是还是忍不住吹了一波 IDEA 的静态代码审查。

8270 次点击
所在节点    程序员
46 条回复
qiyuey
2019-09-24 13:52:49 +08:00
无非就是:懒、笨、又懒又笨
chendy
2019-09-24 14:06:28 +08:00
曾经接手老项目,打开代码仿佛有人尿在了屏幕上一样…
iffi
2019-09-24 14:21:09 +08:00
SonarLint 飘过
zek
2019-09-24 15:08:31 +08:00
虽然看着难受,但是真没时间管它
way2create
2019-09-24 15:23:09 +08:00
我觉得 jb 家的错误呈现方式挺好的,vscode 插件那种挺烦的,有些 warning 又不是错误 仅仅是没检测到 自己的项目还好 看别人的老项目就特烦了 也不可能一个个去弄 有些也没必要弄
shanlan
2019-09-24 15:45:28 +08:00
接手遗留的项目,满屏幕的黄点点、波浪线,WebStorm
pwrliang
2019-09-24 15:49:57 +08:00
+1,Idea 的 check 真的很好。除非那种带范型的类型强转检查的话一般我不会 fix,其他的都会 fix。
l8g
2019-09-24 15:52:01 +08:00
黄的我一般能处理的都会处理掉,关掉简直就是掩耳盗铃。
fvckDaybyte2
2019-09-24 16:14:23 +08:00
扫黄小组?
liuhuansir
2019-09-24 16:24:10 +08:00
@shanlan webstorm 不太准,可能是因为 js 是动态语言吧,很多波浪线根本没法解决,比如 Unresolved variable xxx 这种
gIrl1990
2019-09-24 16:55:17 +08:00
这就是偏洁癖或者强迫症那一类了
FightForFreedom
2019-09-24 16:58:39 +08:00
有一说一,阿里的检查插件,一些检查出的错误想 suppressWarning 都 suppress 不了
hitoriga
2019-09-24 17:17:40 +08:00
有个段子,说的是电梯井在维修,门敞着,门口放着个牌子上面写着"ERROR",有个路人觉得很奇怪说这么危险的东西怎么才放个 error 在这里啊,拿了个 WARNING 牌子把原本的替换掉了。

于是当天好多程序员掉下去摔死了
aguesuka
2019-09-24 19:05:06 +08:00
1.用构造方法注入。2.如果是单个项目,按照 idea 的做不会有问题。如果是要打成 jar 包,用接口。4 拼写错误 alt+回车可以保存单词,代码重复十有八九可以抽象,5.这种警告让我学了不少东西。
starsriver
2019-09-24 19:20:44 +08:00
我直接在控制器里面噜 sql,一片黄。懒得分模块。
phantomzz
2019-09-24 19:25:32 +08:00
@xuanbg 我们团队严禁使用 Executors 的任何 new 线程池方法,我们的业务量比较大,不指定队列长度很有可能会 OOM
magiclz233
2019-09-24 19:26:45 +08:00
mybatis mapper.xml 里面全部飘黄,是不是也得改。本来就测试 Executors 想快点敲一个线程池,在那飘黄。无语了
Varobjs
2019-09-24 19:27:10 +08:00
phpstorm 也是会提示很多 warn 什么的
有的人就是不管。看别人代码难受
比如 写 很多 if else 每个分支定义相同变量,但有的分支会漏掉,IDE 就可以提示。
同样用 IDE 真烦有人写出来的,跟 text editor 写出来的一样。

还有代码格式化问题, 随手一个 Ctrl + Alt + l,Ctrl + Alt + o 很难吗
Varobjs
2019-09-24 19:28:45 +08:00
@aguesuka alt + 回车 真好用,然而 很多人不知道。
jaylee4869
2019-09-24 19:29:23 +08:00
扫黄!问一下你们 @Autowired 注入的时候,是改成构造注入吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/603637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX