本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

Eclipse Galileo での容易なナビゲーション

新たな機能でナビゲーションが容易に

Nathan A. Good, Senior Information Engineer, Freelance Developer
Nathan Good
Nathan A. Good はミネソタ州の Twin Cities エリアに住んでいます。彼はプロとしてソフトウェア開発やソフトウェア・アーキテクチャー、システム管理などを行っています。彼はソフトウェアを書いている時以外は、PC やサーバーを構築したり、新しい技術について資料を読んだり、そうした技術に取り組んだり、彼の友人達をオープソース・ソフトウェアに移行させようとしたりしています。彼は数多くの本や記事を執筆、あるいは共同で執筆しており、その中には『Professional Red Hat Enterprise Linux 3』や『Regular Expression Recipes: A Problem-Solution Approach』、『Foundations of PEAR: Rapid PHP Development』などがあります。

概要: Eclipse Galileo では、Java™ 技術のプロジェクトを素早くナビゲートするための機能がいくつか導入されています。これらの機能を既存の機能と組み合わせると、非常に大規模なプロジェクトでも素早くナビゲートすることができます。

日付:  2009年 9月 08日
レベル:  中級 この記事の原文:  英語
アクティビティー: 3657 ビュー
お気軽にご意見・ご感想をお寄せください: 


私がかつて従事していたプロジェクトで技術リーダーをしていた私の友人は、大規模なファイル・セットのディレクトリーを検索して特定のクラス・ファイルを見つけ出す作業を「洞窟探検」と呼んだことがあります。大規模な Java プロジェクトの場合、インターフェースやクラスが追加されるにつれ、1 つのファイルを見つけるためにコード・ベースをナビゲートする時間が長くなるのは当然のことです。「Package Explorer (パッケージ・エクスプローラー)」にあるこうした大量のファイルやディレクトリーの中を検索していると、洞窟の奥深くを探検しているような気になります。

もし皆さんが Java のメソッドやクラスを見つけるために相変わらず洞窟探検のようにパッケージやディレクトリーを検索しているのであれば、今回の記事のヒントを大規模なプロジェクトのナビゲートに役立ててください。「Package Explorer (パッケージ・エクスプローラー)」を使うのを避け、ここで説明するヒントを使ってみてください。そのヒントのほとんどが、マウスを少しだけ操作し、2、3 回クリックするだけでよいのです。

リファクタリングと構成

ナビゲーションの問題が起きないように、常にリファクタリングすることでクラスを簡潔に保つこと、そしてパッケージを使うことにより、ナビゲートしやすい直感的な構造でクラスやインターフェースを構成することを勧める適切な意見があります。そうした目標がツールによってどれほど容易になるにせよ、どちらの目標も適切であり、その 2 つを常に追求する必要があります。ただしナビゲーションを容易にしようとするあまり、設計に関する決定に影響を及ぼすことがないように注意してください。プロジェクトの設計は問題ドメインに合ったものでなければなりません。

Open Declaration (宣言を開く)

Galileo よりも前のバージョンの Eclipse では、Java のファイルを素早く開いて内容を表示する 1 つの方法は、1 つのメソッドまたはクラスを右クリックし、表示されるコンテキスト・メニューの「Open Declaration (宣言を開く)」をクリックすることで、Java エディターの中で Java 要素 (メソッド、インターフェース、クラス) を開く方法でした。コンテキスト・メニューを使う方法の他に、Java エディターの中で Ctrl キーを押し、要素上でマウスを動かす方法もあります。要素上でマウスを動かすと、その要素がリンクに変わります。そのリンクをクリックすると、Java エディターの中でその要素を宣言しているところにジャンプします。

Galileo では新たにドロップダウン・リストが表示され、宣言を開くための選択肢がドロップダウン・リストに表示されます。「Open Declaration (宣言を開く)」をクリックすると、選択された要素が Java エディターの中で開かれます。


図 1. 宣言を開く


Mac OS X のキーボード・ショートカットを使う

Mac OS X で Eclipse を使用している場合には、このヒントを紹介する記事で説明しているすべてのキーの組み合わせに関して CtrlCmd で置き換えてください。

Open Declaration (宣言を開く)」を使う場合の唯一の問題は、インターフェースを使用している場合にありました。インターフェースを使用している場合、「Open Declaration (宣言を開く)」コマンドによって要素の宣言 (つまりインターフェース) が開かれます。これでは少し困る場合があります。例えば、プロジェクトが実行された場合に実際に実行される Java コードを調べるために、選択された要素の実装を開きたいような場合です。この問題は、Galileo での新しいコマンド機能である「Open Implementation (実装を開く)」によって解決されています。


Open Implementation (実装を開く)

Open Implementation (実装を開く)」を呼び出すためには、Java エディターの中にある Java 要素上でマウスを動かしながら Ctrl を押します。これはハイパーリンクを使って宣言を開く場合とまったく同じです。するとドロップダウン・リストが表示されるので、「Open Implementation (実装を開く)」をクリックします。


図 2. 実装を開く


上記のコードを使用すると、エディターが開き、その要素の実際のクラスの実装が表示されます。


図 3. エディターの中に表示されるコード



Javadoc ハイパーリンク

要素のドキュメントとして Javadoc (「参考文献」を参照) を使っている場合には、先ほどと同じ Ctrl + クリックの手法を使うと、Javadoc の中で @see キーワードまたは @link キーワードを使って参照されている要素を開くことができます (図 4)。キーワードに続くハイパーリンクをクリックすると、Eclipse は指定された型を Java エディターの中で開きます。


図 4. Javadoc のコメントで Ctrl + クリックを使う


Galileo では新しい機能として、@see または @link によって定義される要素のドキュメントを表示することができます。Javadoc プレビューと Javadoc ビューでは要素がハイパーリンクとして表示されます。そのハイパーリンクをクリックすると、クリックされた要素の Javadoc が表示されます。要素の Javadoc を読みたいだけであれば、新しい Java エディター・ビューの中でファイルを開く手間を省くことができます。


図 5. Javadoc ビューでハイパーリンクを素早く読み取る



「Quick Outline (クイック・アウトライン)」を表示する

メソッドを沢山持つ大規模なクラス・ファイルの場合、Ctrl+O を押すと「Quick Outline (クイック・アウトライン)」が開かれ、メソッドやフィールドを素早く見つけることができます。Ctrl+O を押した後、見つけたいメソッドの名前を入力していきます。名前が入力されるにつれ、リストに表示される内容はフィルタリングされ、一致する要素のみが表示されるようになります。


図 6. 「Quick Outline (クイック・アウトライン)」を使う


リストから要素を選択すると、Eclipse は現在の Java エディターの中にある、その要素までナビゲートしてくれます。


「Quick Type Hierarchy (クイック型階層)」を表示する

Java エディターの中でクラス・ファイルが開いており、型の階層構造の中にある Java の型を開きたい場合には、Ctrl+T を押すと (または、「Navigate (ナビゲート)」 > 「Quick Type Hierarchy (クイック型階層)」の順にクリックすると)、型の階層構造を表示することができます。


図 7. 「Quick Type Hierarchy (クイック型階層)」を使用する


この階層構造では、選択された要素のサブタイプが表示されます。例えばインターフェースを選択して「Quick Type Hierarchy (クイック型階層)」を呼び出した場合には、そのインターフェースを実装する既知のクラスがすべて一覧表示されます。

再度 Ctrl+T を押すと「Quick Type Hierarchy (クイック型階層)」が実行され、スーパータイプが一覧表示されます (図 8)。この一覧には、選択された要素が実装するインターフェースや、選択された要素が継承するクラスがすべて含まれています。


図 8. 「Quick Type Hierarchy (クイック型階層)」を使ってスーパータイプを見つける


「Quick Type Hierarchy (クイック型階層)」によって表示される一覧から 1 つの型を選択すると、Eclipse は選択された型で新しい Java エディターを開きます。


Open Type (型を開く)

エディターに表示したい Java クラスの名前がわかっている場合には、そのクラスを見つけて開くための最も簡単な方法は、Ctrl+Shift+T を押し (または、「Navigate (ナビゲート)」 > 「Open Type (型を開く)」の順にクリックし)、「Open Type (型を開く)」ウィンドウを表示する方法です。このウィンドウが表示され、そこに名前を入力していくと、Eclipse は入力された型に一致する型を見つけて表示します。


図 9. 「Open Type (型を開く)」を使う


完全なクラス名を入力する方法の他に、さらに速く結果を見つけるための 2 つの方法があります。1 つ目の方法は、ワイルドカード *? を使用して、それぞれ任意の文字または 1 つの文字と突き合わせる方法です。例えば AutomobileFormatter クラスを見つけるためには、「Auto*」または「A*Formatter」と入力します (図 10)。


図 10. 「Open Type (型を開く)」でワイルドカードを使う


2 つ目の方法は、そのクラスの省略形を使う方法です。省略形には型の名前の大文字を使います。例えば AutomobileFormatter を見つけるためには「AF」と入力します。それでもあまり選択肢は狭まらないかもしれないため、「AuFo」と入力します。「Open Type (型を開く)」ウィンドウのリストから型を選択し、「OK」をクリックします。すると Eclipse は選択された型を Java エディターの中で開きます。


Open Resource (リソースを開く)

場合によると、開きたいファイルが Java 要素ではなく、プロパティー・ファイルや XML ファイルの場合があります。その場合には「Open Type (型を開く)」を使う代わりに「Open Resource (リソースを開く)」を使います。そのためには、Ctrl+Shift+R を押すか、あるいは「Navigate (ナビゲート)」 > 「Open Resource (リソースを開く)」の順にクリックします。「Open Type (型を開く)」の場合と同様、ワイルドカード文字または省略形を使用すると、リソースの選択肢を素早く狭めることができます。また「Open Type (型を開く)」のように、一覧からリソースを選択して「OK」をクリックすると、Eclipse は選択されたリソースを開きます。


パンくずリストを表示する

Java エディターでのパンくずリストの使い方は「Package Explorer (パッケージ・エクスプローラー)」の使い方と似ています。ただしメソッド、クラス、パッケージ、その他のプロジェクト・リソースの表示は、Java エディターのパンくずリストの方が、はるかにナビゲートしやすい形式になっています。

パンくずリストをオンにするためには、下記のボタンをクリックします。


図 11. Java エディターでパンくずリストをオン・オフするためのボタン


パンくずリストをオンにすると、図 12のようにパンくずリストが表示されます。エディターの中で別の要素を選択すると、パンくずリストの項目が変更され、現在選択されている要素と、その要素を含むプロジェクトの階層構造が表示されます。


図 12. Java エディターのパンくずリスト


パンくずリストをクリックすると、その階層構造で同じレベルにある他の要素を表示することができます。


図 13. 階層構造で同じレベルにある他の要素を表示する



まとめ

Eclipse には大規模なコード・ベースを素早く効率的にナビゲートする場合に役立つ機能が用意されています。そのため、洞窟探検のようにコードのファイルやディレクトリーの中を探し回る必要はありません。Eclipse IDE の機能を利用することで、コードの実装に時間とエネルギーを集中させることができ、クラスやメソッドを見つけるために大きな時間とエネルギーを費やす必要がなくなります。


参考文献

学ぶために

  • Javadoc Tool のサイトで Javadoc について学んでください。

  • Eclipse Galileo の接近調査」を読み、Galileo の新機能について学んでください。

  • Eclipse の推奨読み物リスト」を調べてみてください。

  • developerWorks には他にも Eclipse に関する資料が豊富に用意されています。

  • developerWorks を Twitter でフォローしてください。

  • Eclipse が初めての人は、developerWorks の記事「Eclipse Platform 入門」を読んでください。Eclipse の起源やアーキテクチャー、またプラグインを使って Eclipse を拡張する方法などを学ぶことができます。

  • IBM developerWorks の Eclipse project resources を利用して Eclipse のスキルを磨いてください。

  • developerWorks podcasts ではソフトウェア開発者のための興味深いインタビューや議論を聞くことができます。

  • developerWorks の Technical events and webcasts で最新情報を入手してください。

  • IBM とオープンソース技術、そして製品機能を調べ、学ぶために、無料の developerWorks On demand demos をご覧ください。

  • IBM オープンソース開発者にとって関心のある、世界中で今後開催される会議や業界展示会、ウェブキャスト、その他のイベントについて調べてみてください。

  • developerWorks の Open source ゾーンをご覧ください。オープンソース技術を使った開発や、IBM 製品でオープンソース技術を使用するためのハウ・ツー情報やツール、プロジェクトの更新情報など、豊富な情報が用意されています。

製品や技術を入手するために

議論するために

  • Eclipse に関する質問を議論するための最初の場所として、Eclipse Platform newsgroups があります (このリンクをクリックすると、デフォルトの Usenet ニュース・リーダー・アプリケーションが起動し、eclipse.platform が開きます)。

  • Eclipse newsgroupsには、Eclipse を利用し、拡張することに関心を持つ人達のために、さまざまなリソースが用意されています。

  • developerWorks blogs から developerWorks のコミュニティーに加わってください。

著者について

Nathan Good

Nathan A. Good はミネソタ州の Twin Cities エリアに住んでいます。彼はプロとしてソフトウェア開発やソフトウェア・アーキテクチャー、システム管理などを行っています。彼はソフトウェアを書いている時以外は、PC やサーバーを構築したり、新しい技術について資料を読んだり、そうした技術に取り組んだり、彼の友人達をオープソース・ソフトウェアに移行させようとしたりしています。彼は数多くの本や記事を執筆、あるいは共同で執筆しており、その中には『Professional Red Hat Enterprise Linux 3』や『Regular Expression Recipes: A Problem-Solution Approach』、『Foundations of PEAR: Rapid PHP Development』などがあります。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Open source
ArticleID=433957
ArticleTitle=Eclipse Galileo での容易なナビゲーション
publish-date=09082009
author1-email=mail@nathanagood.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。