Checkstyle / Module / SizeViolations



サイズに関するチェック。

ExecutableStatementCount

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck
Since3.2

メソッドなどのメンバ内に存在する文の数をチェックします。

プロパティ名デフォルト概要
maxInteger30認める最大の文の数
tokensCTOR_DEF, METHOD_DEF, INSTANCE_INIT, STATIC_INITすべてチェックする対象のメンバ

記述サンプル

  • Standard Checkstyle
    <module name = "ExecutableStatementCount">
        <property name = "max" value = "45" />
        <property name = "tokens" value = "METHOD_DEF" />
    </module>

FileLength

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.FileLengthCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck(3.2)

ソースファイルの行数がある一定上でないかをチェックします。

Rationale: ソースコードがとても長かった場合は、理解するのが難しい。そのため、長いクラスは通常、限定された仕事にフォーカスするように幾つかの個別のクラスにリファクタリングすべきです。

プロパティ名デフォルト概要
maxInteger20001ファイルの行数と認める最大の行数

記述サンプル

  • Standard Checkstyle
    <module name = "FileLength">
        <property name = "max" value = "1500" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.FileLengthCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "max" value = "1500" />
        </config-properties>
    </rule-configuration>

LineLength

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.LineLengthCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck(3.2)

一行の文字数が、ある一定以上ではないかをチェックします。

Rationale: 長い行は、ソースコードをプリントアウトときや開発者が制限された画面上(例えば、IDEではプロジェクトツリーやクラス階層図などの追加情報が表示されています)で見る場合は読みづらいものです。

プロパティ名デフォルト概要
ignorePatternRegular Expression^$チェックを無視する行を指定
maxInteger801行の文字数と認める最大文字数

記述サンプル

  • Standard Checkstyle
    <module name = "LineLength">
        <property name = "ignorePattern" value = "^ *\*" />
        <property name = "max" value = "80" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.LineLengthCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "ignorePattern" value = "^ *\*" />
            <config-property name = "max" value = "80" />
        </config-properties>
    </rule-configuration>

MethodLength

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.MethodLengthCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.sizes.MethodLengthCheck(3.2)

メソッド及びコンストラクタの定義に含まれる行数をチェックします。

Rationale: メソッドがとても長かったら、理解するのが難しくなります。そのため、長いメソッドは通常、限定された仕事にフォーカスするように幾つかの個別のメソッドにリファクタリングすべきです。

プロパティ名デフォルト概要
maxInteger150メソッド定義内に含まれる最大行数
countEmptyBooleantrue(Since 3.2)行コメントを空行としてカウントするかどうか
tokensMETHOD_DEF, CTOR_DEFすべてチェックする対象

記述サンプル

  • Standard Checkstyle
    <module name = "MethodLength">
        <property name = "max" value = "100" />
        <property name = "tokens" value = "METHOD_DEF" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.MethodLengthCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "max" value = "100" />
            <config-property name = "tokens" value = "METHOD_DEF" />
        </config-properties>
    </rule-configuration>

AnonInnerLength

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.sizes.AnonInnerLengthCheck
Since3.2

無名クラスの定義内に含まれる行数をチェックします。

Rationale: 無名クラスの定義が恐ろしく長かったら、理解が難しくなり、メソッド内の処理の流れを追うことが困難になります。そのため、長い無名クラスは名前を持ったクラスにするようにリファクタリングすべきなのです。詳しくは、Bloch の Effective Java の P.93 を。

プロパティ名デフォルト概要
maxInteger20含まれる最大行数

記述サンプル

  • Standard Checkstyle
    <module name = "AnonInnerLength">
        <property name = "max" value = "30" />
    </module>

ParameterNumber

親モジュールTreeWalker
実装クラスcom.puppycrawl.tools.checkstyle.checks.ParameterNumberCheck(≦3.1)
com.puppycrawl.tools.checkstyle.checks.sizes.ParameterNumberCheck(3.2)

メソッド及びコンストラクタのパラメータの数をチェックします。

プロパティ名デフォルト概要
maxInteger7パラメータの最大数
tokensMETHOD_DEF, CTOR_DEFすべてチェックする対象

記述サンプル

  • Standard Checkstyle
    <module name = "MethodLength">
        <property name = "max" value = "5" />
        <property name = "tokens" value = "METHOD_DEF" />
    </module>
  • Plug-in Checkstyle
    <rule-configuration
        classname = "com.puppycrawl.tools.checkstyle.checks.MethodLengthCheck"
        severity = "warning">
        <config-properties>
            <config-property name = "max" value = "5" />
            <config-property name = "tokens" value = "METHOD_DEF" />
        </config-properties>
    </rule-configuration>

チェックサンプル

<module name = "MethodLength">
    <property name = "max" value = "2" />
</module>

としたとき、以下のようになる。

OK!  public void setAttribute(String name, String[] values) {
Boo! public void setAttribute(String name, String value1, String value2) {