zoukankan      html  css  js  c++  java
  • 检查结果

    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、生产环境应该去掉的注释

  • 相关阅读:
    优化SQL查询:如何写出高性能SQL语句
    提高SQL执行效率的16种方法
    Spring Ioc DI 原理
    java内存泄漏
    转:js闭包
    LeetCode Best Time to Buy and Sell Stock III
    LeetCode Best Time to Buy and Sell Stock with Cooldown
    LeetCode Length of Longest Fibonacci Subsequence
    LeetCode Divisor Game
    LeetCode Sum of Even Numbers After Queries
  • 原文地址:https://www.cnblogs.com/xidian2014/p/10260102.html
Copyright © 2011-2022 走看看