minimize

Javadoc Comments

Javadoc関連のチェックを行います。

PackageHtml

パッケージ毎に package.html があるかどうかをチェックします。

Javadoc記述のルールがある現場でも、
パッケージドキュメンテーションは意外と見逃されています。
それは、JavadocをHTML化していないからです。
HTML化すればすぐに、パッケージドキュメンテーションも
書く必要がある事に気付くはずなんですが。

fileExtensions

Javaファイルを識別する拡張子を設定します。
デフォルトは java です。
Javaファイルが存在するディレクトリ内に
package.html が無い場合がチェック対象となります。

JavadocType

クラス(またはインターフェイス)のJavadoc定義をチェックします。

最低限、クラスのJavadocは書いておいた方がいいでしょう。
クラスはJavaの基本単位であり、
良いクラス設計は良いシステムを生むための第一歩となります。

クラスのJavadocには、そのクラスが実装している機能を簡潔に記述します。
機能がたくさんあるようならそのクラスは分割できますし
記述文に適していないクラス名が付いていたらそのクラスは改名する余地があります。

scope

チェックを有効にするスコープ(アクセス識別子)を設定します。
ここで指定したスコープと同じかそれより制限の緩いクラスでチェックが有効になります。
デフォルトは private です。
この場合、全てのクラスでチェックが有効になります。

excludeScope

チェックを無効にするスコープを設定します。
ここで指定したスコープと同じかそれより制限の厳しいクラスでチェックが無効になります。
デフォルトは nothing です。
この場合、チェックを無効にするクラスはありません。

authorFormat

  @author タグで有効なパターンを正規表現で指定します。

versionFormat

  @version タグで有効なパターンを正規表現で指定します。

tokens

チェック対象を設定します。

Class decaration

クラスをチェック対象に入れます。

Interface Decaration

インターフェイスをチェック対象に入れます。

JavadocMethod

メソッドやコンストラクタのJavadoc定義をチェックします。

全メソッドのJavadocを書くことは正直大変で、
どの現場でも疎かになりがちです。
しかし、これをやる事でそのコードは格段に保守性が上がります。
コメントを書くこと自体が重要なのではなく
それによって適切なメソッド分割する事を実践していくからです。

「一つのメソッドで複数の事をしない」
これが大原則です。
メソッドが大きくなってきたら、すぐに分割する事を考えます。
まずは、1メソッド50行以内。この分かりやすい指針で始めましょう。

scope
excludeScope

チェック対象にするスコープを設定します。
詳しくは JavadocType の欄を参考にして下さい。

allowUndeclaredRTE

RuntimeException (及びそのサブクラス)に対する@throws節の記述を許可するかどうかを設定します。
デフォルトは false です。

/**
* @throws RuntimeException ...
*/
private void func() {
...
}

メソッドのthrows句に RuntimeException は定義されていませんが、
Javadocに @throws 節が存在しています。
これを許可する場合には、値を true にします。

allowThrowsTagsForSubclasses

throws句で定義された例外クラスのサブクラスに対する@throws節の記述を許可するかどうかを設定します。
デフォルトは false です。

/**
* @throws IOException ...
*/
private void func() throws Exception {
...
}

メソッドのthrows句に Exception が定義されていて、
Javadocに IOException に対する@throws節が存在しています。
これを許可する場合には、値を true にします。

allowMissingParamTags

メソッドの引数で定義された変数の @param 節が存在しない事を許可するかどうかを設定します。
デフォルトは false です。

/**
*
*/
private void func(int i) {
...
}

メソッドの引数 i に対応する @param 節が存在しません。
これを許可する場合には、値を true にします。

allowMissingThrowsTags

メソッドのthrows句で定義された例外の @throws 節が存在しない事を許可するかどうかを設定します。
デフォルトは false です。

allowMissingReturnTag

void以外の戻り値を持つメソッドのJavadocに @return 節が存在しない事を許可するかどうかを設定します。
デフォルトは false です。

allowMissingJavadoc

メソッドのJavadocそのものが存在しない事を許可するかどうかを設定します。
デフォルトは false です。

allowMissingPropertyJavadoc

プロパティメソッドのJavadocそのものが存在しない事を許可するかどうかを設定します。
プロパティメソッドとは、いわゆるGetter/Setterメソッドの事を指します。
デフォルトは false です。

tokens

チェック対象を設定します。

Method decaration

メソッドをチェック対象に入れます。

Constructor Decaration

コンストラクタをチェック対象に入れます。

JavadocVariable

変数のJavadoc定義をチェックします。

クラスやメソッドに比べれば、変数のJavadocはそれほど重要ではありません。
それよりも、適切な変数名を付ける事の方が大事です。

scope
excludeScope

チェック対象にするスコープを設定します。
詳しくは JavadocType の欄を参考にして下さい。

JavadocStyle

Javadocコメントの妥当性をチェックします。
Sun の DocCheck というドックレットを利用しているようです。

まぁ、ここまでやらなくても良いような気もしますが…
DocCheckも(2006/8)現在まだベータ版ですし、導入は控えた方が無難です。

scope
excludeScope

チェック対象にするスコープを設定します。
詳しくは JavadocType の欄を参考にして下さい。

checkFirstSentence

最初の文だけをチェックします。
デフォルトは true です。

checkEmptyJavadoc

空のJavadocコメントをチェックします。
デフォルトは false です。

checkHtml

不完全なHTMLタグをチェックします。
デフォルトは true です。

WriteTag

必要・不必要なタグをチェックします。

プロジェクトでルールを決めたい場合に使用しましょう。
例えば author タグを必須にする等はよくあるルールです。

tag

チェックするタグ名を指定します。

tagFormat

許可されるタグ値を、正規表現で指定します。

tagSeverity

上記で指定したタグが発見されたときの警告レベルを指定します。
デフォルトは info です。

例えば、author タグを必須とするならば…

<module name="WriteTag">
  <property name="tag" value="@author"/>
  <property name="tagFormat" value="\S"/>
</module>

こんな感じにします。

逆に、incomplete タグが指定された箇所をチェックしたい場合は…

<module name="WriteTag">
  <property name="tag" value="@incomplete"/>
  <property name="tagFormat" value="\S"/>
  <property name="severity" value="ignore"/>
  <property name="tagSeverity" value="warning"/>
</module>

こんな感じに。

[コメント(0)]