前回 まででフォームデザイナーの実装が完了しました。最終回の今回は連載を通してEclipseプラグインを開発してきた経験をもとに、もう一度そのメリットについて考えてみたいと思います。また開発に役立つサイトや書籍、プラグインを紹介していきます。
Eclipseプラグインを開発するメリット
第1回 で、Eclipseのプラグインを開発するメリットを下記のように挙げました。
既にあるプラグインをカスタマイズすることができる
目的に合うプラグインがない場合、自分で開発することができる
プラグイン開発の知識をEclipse RCP(リッチクライアント環境)の開発に応用することができる
私は上記に加えて「学習効果」を挙げることができると考えています。今回フォームデザイナーを実装するにあたり、PDE(Plug -in Development Environment)のマニフェストエディターやEclipse Formsのソースコードを見てきましたが、その実装はとても参考になるものでした。
例えば、第5回 で解説したPDEFormEditorクラスのaddPages()メソッドの実装には、GoFのTemplate Methodパターンが使用されています。またManagedFormクラスでは、Master(一覧)とDetials(詳細)の間の変更通知を行うための仕組みとしてObserverパターンが使われています。このようにEclipseの実装はデザインパターンを有効に活用しており、その実例として大変参考になるものです。
こういった観点からEclipseプラグインを開発する(Eclipseのソースコードを読む)ということは、オブジェクト指向開発の実装力を高める効果があるといえるでしょう。
開発に役立つプラグイン
ここでは開発に役立つプラグインをいくつか挙げてみます。Plug-in Spy以外はプラグイン開発以外のJava開発でも有効ですので、ぜひ試してみてください。
Plug-in Spy
Plug-in Spyはビューやエディター、ダイアログ上でAlt+Shift+F1を押すと、実装しているクラスやプラグインの情報をポップアップウィンドウで表示してくれる大変便利なプラグインです。ポップアップウィンドウのクラス名のところがリンクになっており、それをクリックするとソースコードを参照することができるので、ビューやエディターの実装方法を簡単に調べることができます。
Plug-in Spyは次期バージョン3.4(Ganymede)で標準搭載されるプラグインですが、日本のkojihashiさんがEclipse 3.3でも使用できるようにパッチを公開してくださいました。下記URLにはインストール可能なZIPファイルもありますので、ぜひお試しください。
フォームデザイナー上でPlug-in Spyを実行
Metrics
Javaのソースコードをライン数、パッケージ数などさまざまな観点から計測してくれるプラグインです。ソースコードが複雑になりすぎていないかを客観的に調べるのに重宝します。今回の連載で実装したフォームデザイナーを計測したところ、「 Nested Block Depth」と「McCabe Cyclomatic Complexity」のふたつの項目で問題があることがわかります。
Metricsによるフォームデザイナーの計測結果
Mectrics は下記の更新サイトからインストールすることができます。
Checkstyle
プロジェクトでコーディングルールを決めることはよくありますが、それを徹底するのは容易なことではありません。開発者も人間ですから間違うこともありますし、間違えても動作するため問題が表面化しません。保守のフェーズでコーディングルールを知らない人によって、少しずつ壊されていくということもあります。
Checkstyleは決められたルールに従っていない部分を警告として表示してくれるので見落とすことがありません。また独自のチェック構成を作ることができるので、プロジェクト独自のコーディングルールを作ることも可能です。
フォームデザイナーにPiece_IDE開発用のチェック構成を適用したところ多くの警告が表示されました
Eclipseプラグイン開発における情報源
最後にEclipseプラグイン開発に役立つサイト・書籍を紹介します。
サイト
EclipseWiki
さまざまなプラグインの特徴やインストール方法が紹介されているサイトです。そのほかにもプラグインの作り方などTipsが掲載されています。
ObserveEclipse
この連載でもとりあえげたSWT/JFaceといったライブラリを使ったGUIプログラミンの情報を中心に扱っているサイトです。特にSWTのレイアウトの説明はかなり詳細に書かれており大変参考になります。
書籍
Eclipseプラグイン開発 徹底攻略 (毎日コミュニケーションズ)
竹添直樹、志田隆弘、奥畑裕樹、里見知弘、野沢智也 著
ISBN978-4-8399-2219-1
Eclipseのプラグイン開発におけるほぼすべてを網羅しています。全体を網羅しているためひとつひとつの詳細な解説はありませんが、開発を始める足掛かりとして手元においておきたい書籍です。
Eclipseプラグイン開発 デザインパターン×テスト駆動開発 (SOFTBANK パブリッシング)
Erich Gamma, Kent Beck 著
ISBN978-4-7973-2489-1
Eclipseプラグイン開発をテスト駆動開発で行っていきます。執筆自体は2.0ベースで書かれており、それを翻訳時に3.0ベースで書き直されているため、情報としては少し古いのですが、Eclipseとそのプラグインの概念を学びたい方には有効な書籍です。
これらのサイト・書籍は大変役に立ちますが、第1回 で解説したヘルプやソースコードといった情報源の補助として活用することをお勧めします。原典あるいはそれに近いところの情報は基本的に質が高く信頼できるものです。また体系的にまとまっている場合が多いので、本質的な理解と応用力を身につける助けになります。こういった観点から、原典を重視しつつ、上記で紹介したサイトや書籍を活用することをお薦めします。
おわりに
12回にわたりEclipse Formsを使ったプラグイン開発をお送りしてきましたが、いかがだったでしょうか。今回の連載では、実装の解説だけにとどまらず、私がその手法に行き着いた過程をお見せしてきました。Eclipseプラグインの開発では解説されていること以外のことをしようとすると、急に難しく感じることがあります。これはEclipseプラグインの開発に関するまとまった情報源があまりないことが原因であると思われます。そこで本連載では、Eclipseプラグイン開発自体のノウハウよりも、「 解決策の探し方」を重視してお送りしてきました。今回の連載が皆様のEclipseプラグイン開発の一助となれば幸いです。
ここまで読んで頂いた皆様に感謝いたします。ありがとうございました。