Checkstyle / Module / Metrics



ソースコードの品質チェック。

BooleanExpressionComplexity

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.metrics.BooleanExpressionComplexityCheck
Since3.4

1つの式中に、ブール型演算子(&, &&, |, ||, ^) を幾つまで使って良いかを決めてチェックします。

Rationale: あまりに多くの条件が重なるとソースコードの可読性がおち、そのためにデバッグや保守が難しくなる。

プロパティ名デフォルト概要
maxInteger31つの式中で認める最大のブール型演算子の数

記述サンプル

  • Standard Checkstyle
    <module name = "BooleanExpressionComplexity">
        <property name = "max" value = "5" />
    </module>

ClassDataAbstractionCoupling

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.metrics.ClassAbstactionCouplingCheck
Since3.4

CyclomaticComplexity

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck
Since3.3

循環的複雑さを計測して指定した制限以内かどうかのチェックを行います。

このチェックは、コンストラクタ、メソッド、スタティック(orインスタンス)イニシャライザ内を単位とします。この中で、if, else, while, do, for, ?:, try, catch, switch, case, &&, || の出現数をカウントし、指定した制限以内かどうかをチェックします。

目安として、以下のような数があげられています。

  • 1〜4 いいね
  • 5〜7 まずまず
  • 8〜10 リファクタリングを考えたら?
  • 11以上 要リファクタリング!
プロパティ名デフォルト概要
maxInteger10認める循環的複雑さの最大値

記述サンプル

  • Standard Checkstyle
    <module name = "CyclomaticComplexity">
        <property name = "max" value = "7" />
    </module>

参考資料