检查结果

sonar可以从以下七个维度来检测代码质量:
1、不遵循代码标准
sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具规范代码的编写;
2、潜在的缺陷
sonar可以通过PMD,CheckStyle,Findbugs等代码规则检测工具检测出潜在的缺陷;
3、糟糕的代码复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试;
4、重复
显然程序中包含大量复制粘贴的代码质量低下的,sonar可以展示源码中重复严重的地方;
5、注释不足或者过多
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅度下降;
6、缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率;
7、糟糕的设计
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以展示自定义的架构规则。通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用秦高,检测耦合。

一、blocker(阻断)

1、没有关闭资源

 2、没有结束循环的条件,存在死循环

3、资源不存在,判断条件总是false

4、静态方法里使用的动态调用

二、critical(严重)

1、应该声明为常量的没有用final关键字修饰

2、没有使用日志记录异常

3、不应该抛出Exception,应该抛出自定义的异常,使异常更具体化

4、属性应该是可配置的,不要写死

5、没有适当的使用try...catch...finally

三、major(主要)

1、没有用@Override注解修饰重写的方法

 2、缺少私有的构造函数

3、 删除无用的括弧 

4、移除或者填充语句块

5、没有用isEmpyt()检查集合是否为空

6、不要直接给形参赋值,需要声明新的变量

7、没有合并多条判断语句

8、在一个文件中存在多个重复的代码块

9、 移除没有使用的局部变量

10、应该返回空的集合而不是null 

四、minor(次要)

1、构造函数的声明位置不对,应该放在属性的后面。

According to the Java Code Conventions as defined by Oracle, the members of a class or interface declaration should appear in the following order in the source files:
Class and instance variables
Constructors
Methods

 2、常量需要大写

 3、抛出了运行时异常

 4、移除没有使用的导入资源

5、An indexOf or lastIndexOf call with a single letter String can be made more performant by switching to a call with a char argument.

6、多次使用的相同字符串变量要声明成常量

 五、info(提示)

1、生产环境应该去掉的注释

 

posted on 2019-01-12 16:13  lina2014  阅读(262)  评论(0编辑  收藏  举报

导航