コーディング規約に従わないコードを検索するJavaTips 〜Eclipse活用編

» 2003年10月21日 10時00分 公開
[山田祥寛@IT]

 コラボレーション開発を行う場合、あらかじめコーディング規約を定めておくことは大変重要です。開発者は個々にコーディング上のさまざまな癖を持っているものです。JavaDocコメントを小まめに書く人・書かない人、定数名を大文字にする人・大文字小文字を混在させる人、必要なクラスをパッケージごとインポートする人・クラス単位でインポートする人…それらの差異はアプリケーションの動作という意味では致命的なものではありませんが、コードの管理、可読性という観点からは統一しておくべきものでしょう。

 例えば、JavaDocコメントとして想定した内容が記述されていない場合、期待した仕様書を得ることができません。定数や変数などの命名規則がバラバラであると、後から別な人間がコードを読もうとしたときの障害となります。

 しかし、いかにあらかじめ「規約」を定めておいたとしても、これをすべて頭にたたき込むことは実際にはなかなか難しい話ですし、ましてや完全に順守させることは土台無理なことです。といって、これを後からだれかが目視チェックしていくというのも、大方が忙しい開発の現場にあっては、現実的な解ではないでしょう。

 そこで、本稿でご紹介する「Checkstyle」プラグインの登場です。「Checkstyle」プラグインは、Eclipse上のプロジェクトで管理されたコードを、あらかじめ決められたコーディング規約でチェックし、違反している個所をリストアップしてくれる有用なプラグインです。規約を編集するための専用のエディタも機能が充実していますので、組織独自の規約を設定したい場合にも、容易に設定することが可能です。

操作手順

(1)「Checkstyle」プラグインを入手する

 「Checkstyle」プラグインは、以下のサイトから入手することが可能です。その時々の最新安定版をダウンロードしてください。

http://sourceforge.net/projects/eclipse-cs/

SourceForge.net: Project Info - Eclipse Checkstyle Plug-inのサイト SourceForge.net: Project Info - Eclipse Checkstyle Plug-inのサイト

(2)ダウンロードファイルをインストールする

 ダウンロードしたcom.atlassw.tools.eclipse.Checkstyle_X.X.X.zip(X.X.Xはバージョン番号)を解凍し、出来た「com.atlassw.tools.eclipse.Checkstyle_X.X.X」フォルダをそのままのイメージで、Eclipseホーム(本稿では「C:\eclipse」とします)配下の「plugins」フォルダに移動します。

 Eclipseがすでに起動している場合には、一度終了したうえで、再度起動してください(コンピュータそのものの再起動は必要ありません)。

(3)コーディング標準を決める

 「Checkstyle」プラグインには、デフォルトで「Sun Checks」と呼ばれるコーディング標準定義ファイルが用意されています()。これをこのままコーディング標準として採用する場合には、特別な設定は不要です。ここを飛ばして、(4)に進んでください。

注:原典は、http://java.sun.com/docs/codeconv/。ただし、非公式ながら、日本語訳をhttp://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/から参照することが可能です。

 定義をカスタマイズしたい場合には、「Checkstyle Check Configulation Editor」(以下、「ChechStyle Editor」)から行うことができます。「Checkstyle Editor」を起動するには、メニューバーから[ウィンドウ]→[設定]を選択すると、「設定」ダイアログが開くので、左ツリーから[Checkstyle]を選択します。すると、以下のような画面が表示されます。

左ツリーから[Checkstyle]を選択すると表示される画面 左ツリーから[Checkstyle]を選択すると表示される画面

 あらかじめ用意されている「Sun Checks」を基に編集する場合には[Edit...]を、一からコーディング規約を作成したい場合には[Add...]をクリックします。

 以下は[Edit...]をクリックした場合に表示される「Checkstyle Editor」ですが、[Add...]をクリックした場合には中身がまったく入っていないだけで画面構成はまったく同一です。

[Edit...]をクリックした場合に表示される「Checkstyle Editor」 [Edit...]をクリックした場合に表示される「Checkstyle Editor」

 JavaDocコメント、命名規則、ブロックの記法などさまざまな設定タブが並んでいるので、適宜、ルールの追加、編集、削除を行ってください。例えば、定数の命名規則を編集したい場合には、[Naming Conventions]タブを選択し、「Constant Names」を選択したうえで、[Edit Rule]ボタンをクリックします。下記のようなダイアログが開くので(ここの項目によってダイアログの項目は異なります)、それぞれの項目を必要に応じて編集します。

項目を編集する 項目を編集する

 編集項目は以下のとおりです。CommentとSevirityは各ルール共通の設定項目です。そのほかは各設定項目によって異なります。

項目 概要
Comment ルールに関する備考
Sevirity チェックの深刻度(error:エラー、warning:警告、info:情報、ignore:無視から選択)
format 定数の命名規則を表す正規表現パターン

 設定が完了したら、[OK]ボタンをクリックして設定内容を保存します。もしも新規の設定である場合には、「Audit Configuration Name」に規約名(任意)を入力します。

(4)コーディング標準を適用する

 パッケージ・エクスプローラ()からプロジェクト名(本稿では「javatips」とします)を右クリック、表示されたコンテキストメニューから[プロパティ]を選択します。

注:パッケージ・エクスプローラが表示されていない場合には、メニューバーから[ウィンドウ]→[ビューの表示]→[パッケージ・エクスプローラ]を選択してください。

「(プロジェクト名)のプロパティ」ダイアログ 「(プロジェクト名)のプロパティ」ダイアログ

 「(プロジェクト名)のプロパティ」ダイアログが表示されたら、左ツリーの「Checkstyle」を選択、[Add...]ボタンをクリックします。「Checkstyle File Set Editor」が開きます。

「Checkstyle File Set Editor」 「Checkstyle File Set Editor」

 「Checkstyle File Set Editor」で、以下の項目を設定してください。ここでは(3)で定義したコーディング規約と適用するファイルセットとのマッピングを行います。

項目名 概要
File Set Name ファイルセット名(一意に区別する名前)
Check Configuration コーディング規約名((3)で設定したものをリストから選択)
Include コーディング規約を適用するファイル名の正規表現パターン

 Include項目は、デフォルトでは「Include」にチェックが入りますが、チェックを解除した場合には「Exclude」という表示になります。この場合、正規表現パターンに合致したファイルのみが除外されることになります。

 [OK]ボタンをクリックすると、「(プロジェクト名)のプロパティ」に戻るので、「Enabled」にチェックが入っていることを確認したうえで[OK]ボタンをクリックします。

 コーディング規約に基づく処理が行われ、その結果が「タスク」ウィンドウに表示されれば成功です。各タスクの該当行をダブルクリックすると、エディタの該当行にジャンプできるので、適宜修正を行ってください。

コーディング規約に従ったチェック結果 コーディング規約に従ったチェック結果

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。