SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Checkstyleを使って適切なコーディング標準を簡単に維持する

コーディング標準の適用を支援するオープンソースツール

  • X ポスト
  • このエントリーをはてなブックマークに追加

Eclipse内でのCheckstyleの使用

 Checkstyleは、コマンドラインから使用したり、AntまたはMavenビルドスクリプト内で使用したりなど、さまざまな方法で使用できます。しかし、最も効率的なのはIDE内で使用する方法です。この方法だと、誤り部分を即時に訂正でき、手間もほとんどかかりません。Eclipse、IntelliJ、NetBeans、JBuilder、JEditなど、主要なほとんどのJava IDEには、Checkstyle用のプラグインが存在します。以降では、Eclipse内でCheckstyleを使用する方法について説明します。

 Eclipse Checkstyleプラグインは、http://eclipse-cs.sourceforge.net/index.htmlにあります。まず、プラグインをインストールする必要があります。これには、プラグインのリモートアップデートサイトを使用するのが最も簡単です(図1を参照)。

図1 Checkstyleのインストール:リモートアップデートサイトを使用すると、EclipseのCheckstyleプラグインを簡単にインストールできる。
図1 Checkstyleのインストール:リモートアップデートサイトを使用すると、EclipseのCheckstyleプラグインを簡単にインストールできる。

 プラグインをインストールしたら、特定のプロジェクトに対してCheckstyleチェックを起動できます(図2を参照)。プロジェクトプロパティウィンドウを開き([Project]→[Properties])、Checkstyleプロパティエントリを選択し、[Checkstyle active for this project]チェックボックスをオンにして、[OK]をクリックします。この時点で、Checkstyleはバックグラウンドタスクとして実行され、プロジェクト内のソースコードを監査します。プロジェクトの規模によっては、多少の時間がかかることがあります。

図2 Checkstyleの起動:Checkstyleは、他の多くのIDEと同様、Eclipse IDE用のプラグインを備えている。
図2 Checkstyleの起動:Checkstyleは、他の多くのIDEと同様、Eclipse IDE用のプラグインを備えている。

 Checkstyleがその監査を終了すると、通常は、標準違反の長いリストが生成され、[Problems]ビューペインに警告としてリストされます。このリスト内の問題をクリックすると、原因のコードセグメントに自動的にジャンプします。

 Checkstyleプラグインは、Javaコンパイラと同じように動作します。Checkstyleが有効なプロジェクト内でJavaクラスを編集および保存すると、コードが自動的にチェックされて、違反が強調表示され、その説明が表示されます(図3を参照)。原因のコードが黄色で強調表示され、その上、対応するマーカーが余白に表示されるため、これを見落とすことはないでしょう。

図3 実行中のCheckstyle:Checkstyle Eclipseプラグインは、コードをステップ単位に実行し、問題の箇所を黄色で強調表示する。
図3 実行中のCheckstyle:Checkstyle Eclipseプラグインは、コードをステップ単位に実行し、問題の箇所を黄色で強調表示する。

 コーディング標準が適用されるプロジェクトでは、開発者は、Checkstyleが正しく設定されたIDEで作業する必要があります。適切に推奨すれば、開発者は、コーディング標準エラーを構文エラーとほとんど同じものと見なすようになり、コードを記述しながら訂正するようになります。やがて、すべてのチームメンバが、プロジェクト標準を徐々に(かつスムーズに)身につけていきます。これは、コーディング標準を実践する上で最も効率的な方法です。

 一方、大規模な既存のコードベースでCheckstyleを実行すると、これまでコーディング標準が実践されていなかった場合や異なるコーディング標準が実践されていた場合は特に、大量のエラーが発生するため、混乱が生じる可能性があります。これは、組織にコーディング標準を導入する方法を検討するときの重要な要因です。

 次の節では、チームの特定の要件に合わせてCheckstyleコーディング標準をカスタマイズする方法について説明します。

Eclipse内でのコーディング標準のカスタマイズ

 構成ファイルを通じて最初から提供されるSunコーディング標準は、場合によっては手に余ることがあります。特に、Checkstyleを使用せずに既に多くのコードが記述されている場合、Checkstyleによって、比較的マイナーなルール違反(行の末尾の空白など)が何百個となく報告されてしまいます。この場合、マイナーであまり重要でない大量の標準の中に、重要な標準が埋もれてしまう恐れがあります。その結果、2つのマイナスの副作用が考えられます。

  1. 開発者はCheckstyleを使用したがらなくなり、すべてのルール違反を無視します。これは、Checkstyleをインストールする本来の目的を損ないます。
  2. 開発者は、末尾の空白を削除するといった作業に過度に集中し、数時間を費やします。非常に明快なコードは得られますが、一般に、開発者の生産性は大きく低下します。

 コーディング標準の採用とCheckstyleによる実践を効果的に進めるためには、多くの場合、より柔軟な方法が必要です。これを実現する最も簡単な方法は、会社または単一のプロジェクト用に特別に設計されたコーディング標準のカスタムセットを作成することです。

 Eclipseでは、これを比較的簡単に行うことができます(図4を参照)。[Preferences]ウィンドウにアクセスし、Checkstyleの各種設定を選択してみてください。いくつかの組み込みの構成ファイル(Sunコーディング標準と、Eclipseで使用される既定のコードフォーマットに適用される、多少変更されたバージョンのSun標準)が表示されます。

図4 構成:ここでは、Checkstyleの参照データに追加する新しい構成ファイルを作成している。
図4 構成:ここでは、Checkstyleの参照データに追加する新しい構成ファイルを作成している。

 新しいCheckstyle構成ファイルを作成するには、[New]をクリックします。使用できる構成ファイルの種類は次のとおりです。

構成ファイルの種類説明
[Built-in Configurations]Checkstyleプラグインと共に配布されるSunコーディング標準などが代表例です。これを変更することはできません。
[Internal Configurations]Eclipseメタデータに格納されます。新しい構成をローカルに試みるには便利ですが、他のチームメンバと(簡単には)共有できません。
[External Configurations]外部ソースからインポートされます。ローカルディスク上の外部ファイル([External Configuration])やWebサーバーから([Remote Configuration])インポートしたり、例えば構成管理の下でEclipseプロジェクトに格納したりできます([Project Relative Configuration])。

 プロジェクト関連の構成([Project Relative Configuration])は、該当のCheckstyle構成ファイルが、AntやMavenなど、他のツールによるビルドプロセスでも使用されている場合に、特に効果的です。

 新しいコーディング標準のセットを作成する場合は、内部構成([Internal Configurations])で開始して、その内容に自分とチームの他のメンバが納得したら、エクスポートして公開するのが最も簡単です。

 プラグインを使ってCheckstyle構成ファイルを設定するのは簡単です。新しい構成をクリックするとウィンドウが表示され、そこに、使用可能なCheckstyleモジュールと、この構成ファイルで有効になっているモジュールが表示されます(図5を参照)。構成ファイルにモジュールを追加するには、目的のモジュールをクリックし、各自のニーズに合わせて構成します。各モジュールには、独自の構成パラメータが用意されています。

図5 カスタマイズ:独自のCheckstyle構成ファイルを作成することで、カスタムスタイルおよびルールを実現できる。
図5 カスタマイズ:独自のCheckstyle構成ファイルを作成することで、カスタムスタイルおよびルールを実現できる。

 コーディング標準のイニシアティブについて、開発チームの賛同を得ることが重要です。このためには、チームで標準のリストを作成し、各標準を検討し、プロジェクトの要望と標準に基づいてモジュールを構成するのが適当です。こうすることで、開発者は各ルールの背後にある原動力を理解でき、その採用が促進されます。

次のページ
XMLでのCheckstyleコーディング標準のカスタマイズ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

John Ferguson Smart(John Ferguson Smart)

政府機関や企業の国内外の開発チームから成る大規模なJ2EEプロジェクトに数多く携わる。J2EEのアーキテクチャと開発、およびITプロジェクト管理を専門とする。オープンソースのJavaテクノロジの経験も豊富。自らのテクニカルブログを公開中(www.jroller.com/page/wakaleo)。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/385 2006/08/22 15:47

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング