連載
» 2007年03月09日 10時00分 UPDATE

安藤幸央のランダウン(33):見つけて得するソースコード専用の検索エンジン

「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集部)

[安藤幸央(yukio-andoh@exa-corp.co.jp),@IT]

プログラミングと検索エンジンは切っても切れない

 プログラミングと検索エンジンの関係は切っても切り離せないものです。プログラミングに役立つドキュメントノウハウを探したり、参考になるサンプルプログラムを見つけ出せます。

 さらにバグの回避方法を見つけたり、エラーメッセージを検索エンジンで探して、解決方法が見つかることも多いでしょう。良質のソースコードから、的確なアルゴリズムや、思いもしなかったようなコード例を見いだすのも新たな楽しみです。

 さて、ここではプログラミングの際に便利に利用できるソースコード専用の検索エンジンをいくつか紹介しましょう。ソースコード専用の検索エンジンを利用した検索には以下のような利点が考えられます。

ソースコード専用の検索エンジンを利用した検索の「利点」
  • 雑多な情報の中から、サンプルコードのみを的確に見つけ出すことができる
  • API関数フレームワーク使い方の凡例を知ることができる
  • 一般的に説明の少ないマイナーな関数・メソッドの利用法を知ることができる
  • バグの例、脆弱なコードの例を探すことができる
  • バグに対する的確な対処例を知ることができる
  • 書籍の公式サポートサイトのサンプルコードを見つけることができる

 一方、便利なばかりではありません。注意点としては、以下の項目が挙げられます。

ソースコード専用の検索エンジンを利用した検索の「注意点」
  • ソースコードのライセンスを配慮する。再利用、改変の際には特に注意する
  • 必ずしもバグのない、正しい例とは限らないことを認識する
  • コメント文が不十分だったり、なかったりする場合もある
  • 目的のコードを見つけ出すコツを身に付ける必要がある

 ソースコードを理解するうえでは、単独のソースコードを読み取ることも大切ですが、ソース全体のディレクトリ構造を読み、ファイル構成を読み取ることも大切です。より大きな範囲を読み取ることによって、コード設計の思想や、デザインパターンなどの活用方法をも知ることができます。

 以下、数多くのソースコード専用検索エンジンを紹介しますので、目的や用途に合わせて、自分に合ったサイトと利用方法を見つけ出してください。

Google Code Search

Google Code Search使用例 Google Code Search使用例(クリックすると画像が拡大します)

 Google Code SearchはGoogleが提供するソースコード専用の検索エンジン。キーワードの指定に正規表現が使える。また、単独のソースコードだけではなく圧縮されたファイルの中からもソースコードを抽出できるのが特徴。また、ライセンスを選択して検索できる。大文字小文字を分解して検索したり、大文字小文字を判別する・しないの指定が可能。さらに、パッケージ名やファイル名を指定し、検索範囲とすることもできる。Google Code Searchが対応していない言語でも、ファイルの拡張子で絞り込むという裏技も使える。

Koders

Kodersのトップページ Kodersのトップページ

 登録されている(検索対象となっている)ソースコードが膨大な検索エンジンで、言語別、ライセンス別に検索対照を絞ることができる。また、Eclipse、VidualStudio専用のプラグインFirefox用のプラグインや、ホームページに埋め込み可能な部品企業内で利用できるエンタープライズバージョンも提供されている。

編集部注Kodersについてさらに詳しく知りたい読者は、連載CoolなEclipseプラグイン第6回「サンプルコードの入手をサポートするプラグイン」の[Koders Searchプラグイン]をご参照ください

CodeFetch

CodeFetchのトップページ CodeFetchのトップページ

 検索対象となる言語が多い検索エンジン。プログラミング関連書籍の中のコードも検索対象となっている。

krugle

krugleのトップページ krugleのトップページ

 ソースコード、プログラミングに関する情報、関連するオープンソースプロジェクトを探し出せるサイト。Ajaxを活用したユーザーインターフェイスが小気味よく動作する。

byteMyCode

byteMyCodeのトップページ byteMyCodeのトップページ

 現在は主に、ソースコード共有サイト「byteMyCode 2.0」として進化している。有用なソースに投票することによって、ランキングが上下する。

Codase - Source Code Search Engine

 Java、C/C++専用。多彩な検索オプションが利用できる。プログラミング言語ごとに検索できるとともに、Linux、Windowsといった OSを限定してソースコード検索が可能。

Java Examples - JExamples.com

Java Examples - JExamples.comのトップページ Java Examples - JExamples.comのトップページ

 Javaの利用例検索。メソッドの使い方を検索する。Apache Jakarta projectなど、メジャーなソースコードを中心に探し出せるのが特徴。

DocJar:Search Open Source Java API

 JavaDoc専用検索エンジン。クラス名検索を得意とする。Eclipse用プラグインもあり。NoClassDefFoundError対処用に各種jarファイルの在りかを知ることができる。

編集部注Kodersについてさらに詳しく知りたい読者は、連載CoolなEclipseプラグイン第6回「サンプルコードの入手をサポートするプラグイン」の[DocJarプラグイン]をご参照ください

Prospector Demo

Prospector Demoのトップページ Prospector Demoのトップページ

 Javaの利用例検索サイト。あるオブジェクトから別のオブジェクトを生成するためのコード例を検索できる。Eclipseから直接利用できるプラグインも提供されている。

KickJava.com

KickJava.comのトップページ KickJava.comのトップページ

 Java API用の検索エンジン。クラスの継承の状態、関連するクラスやメソッドなど周辺情報を知ることができる。JavaDocの情報をABC順にブラウズすることもできる。利用しようとしているAPIがメジャーなプログラム内では、どのように使われているのかを知るには重宝するサイトである。

jarhoo

jarhooのトップページ jarhooのトップページ

 クラス名やインターフェイス名をキーワードに検索すると、そのクラスがどのjarファイルに含まれるか検索できる。サーバサイドのエラーログなどで出現したクラス名から、どのjarパッケージがエラーを起こしているのかを的確に知ることができる。

All The Code - Source Code Search Engine

 Java専用のソースコード検索エンジン。あいまいなキーワードからも検索が可能。ライブラリやフレームワークを開発する際の指針として使えるだろう。

Code Search - O’Reilly Labs

Code Search - O’Reilly Labsのトップページ Code Search - O’Reilly Labsのトップページ

 O'Reilly出版本の中のサンプルコード限定で検索できる。書籍を読みながら活用できるサイト。

より良いソースコードを書くために

 ソースコードの検索というソリューションは(プログラミング言語ではなく)言語の壁を越えて活用できます。また、世界中のソースコードを情報として活用するとともに、社内リソース学内リソースを効果的に利用することにも使えます。ソースコードの再利用を促進するとともに、熟練プログラマーの技を知ることもできます。

 ソースコード検索には、コツやカンといったことも大切になります。API、関数の名前が分かっているなら、その名前をそのままキーワードとして検索しましょう。また、関連分野でよく使われる単語・用語を検索してみるのも効果的です。

 検索すると見つかるToDofixmeや「取りあえず」などのコメントを笑い飛ばしながら、より良いソースコードを書くための技を身に付けていきましょう!

 次回以降は、Javaプログラマーが聞いて役立つポッドキャスト番組を取り上げたり、開発の際に活用できる便利なツールを紹介していく予定です。

@IT関連記事

関連書籍

プロフィール

安藤幸央(あんどう ゆきお)

安藤幸央

1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。

ホームページ
Java News.jp(Javaに関する最新ニュース)

所属団体
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)

主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
The Java3D API仕様」(監修、アスキー)


Copyright© 2016 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

編集部からのお知らせ

@IT編集部では、編集記者を募集しています。ご興味のある方は奮ってご応募ください。

RSSについて

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

メールマガジン登録

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