zoukankan      html  css  js  c++  java
  • Sonar在检查java代码隐患中的作用

    Sonar作为一个非常实用的代码质量检查工具,可以在各个维度对整个工程进行一个量化,如代码的测试覆盖率、代码内聚性指标、代码复杂度、代码的重复性检查、包之间的依存度以及代码冲突性等,可以非常直观的通过图标看到这些数据,关于sonar的安装和使用在本博的另一篇文章(《代码质量检查工具Sonar结合hudson、maven使用》)有详细描述,本文主要介绍sonar能够检查出的代码隐患。

    • Avoid Decimal Literals In Big Decimal Constructor 应避免使用Decimal(0.5)这样的做法,因为这样是错误的不精确的
    • Avoid Rethrowing Exception 不应当在catch语句中重新抛出另外的异常
    • Avoid Throwing Null Pointer Exception 不应该抛出空指针异常
    • Boolean Instantiation 不需要实例化布尔变量,只需=Boolean.True or =Boolean.Flase
    • Close Resource 有未关闭的资源,需要使用finally语句块确保安全
    • Collapsible If Statements 如果有多条if语句连续出现,可以使用短路条件if(A && B && ......)提高效率
    • Compare Objects With Equals 比较两个对象应该使用equal而不是等于
    • Cyclomatic Complexity 通常来讲,这个方法或者类太长了,需要分解
    • Dont Import Java Lang Java.Lang是默认引入的不需要显示引入
    • Empty Finalizer或Empty Finally Block或Empty If Stmt或Empty Statement或Empty Static Initializer或Empty Switch Statements或Empty Synchronized Block或Empty Try Block或Empty While Stmt:这个是非常常见的代码问题,if、switch、finally、try等内部是空的,很有可能是码农忘记处理了
    • Equals Hash Code 方法equal重写了但是hashcode未重写
    • Equals Null   和null比较用==而不是用equals
    • If Else Stmts Must Use Braces或If Stmts Must Use Braces 编码时if或者else不写大括号,很容易出现问题
    • Magic Number 魔术数,指的是一个数字无端的出现在代码中,但是却不知道其含义,很常见
    • Naming - *** 通常是类、方法、变量的命名不规范
    • Replace Vector With List 应使用List来代替Vector提高效率
    • Security - Array is stored directly 通常是数组类型的参数使用时,没有使用clone,方法直接改变了引用所指的对象
    • Singular Field 仅在某方法中使用的变量不应该声明为实例变量
    • Unconditional If Statement 通常是If语句永远为真或者永远为假
    • Unnecessary Case Change 使用equalsIgnoreCase()更高效
    • Unused Private Field或Unused formal parameter或Unused local variable或Unused private method没 有用到的变量、参数、方法
    • Useless Operation On Immutable 在方法体中修改了某值意图想传出来,但实际上操作的是一个新的对象或者值,如改变基本类型的参数

    以上是部分常见的隐患类型,还有不少其他的没有写入。


  • 相关阅读:
    分布式-通信(NIO&BIO&网络模型&零拷贝)
    cmake构建和链接静态库与动态库
    ldd
    CMAKE_BUILD_TYPE
    C/CXX attribute
    ffmpeg使用说明(2):ffmpeg提取video,audio,yuv/rgb,PCM
    ffmpeg使用说明(1):ffmpeg帮助使用指南
    ffmpeg使用说明(0):ffmpeg/ffplay/ffprobe
    ffplay使用帮助说明
    书写log的艺术
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3100537.html
Copyright © 2011-2022 走看看