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

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

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

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

ソースコード専用の検索エンジンを利用した検索の「利点」 雑多な情報の中から、 サンプルコード のみを的確に見つけ出すことができる

API や 関数 、 フレームワーク の 使い方の凡例 を知ることができる

一般的に説明の少ない マイナーな関数・メソッドの利用法 を知ることができる

バグ の例、 脆弱なコード の例を探すことができる

バグに対する的確な対処例 を知ることができる

書籍の公式サポートサイトのサンプルコードを見つけることができる



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

ソースコード専用の検索エンジンを利用した検索の「注意点」 ソースコードの ライセンス を配慮する。 再利用、改変の際には特に注意 する

必ずしもバグのない、正しい例とは限らない ことを認識する

コメント文 が不十分だったり、なかったりする場合もある

目的のコードを見つけ出すコツを身に付ける必要がある



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

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

Google Code Search

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

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

Koders

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

CodeFetch

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

krugle

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

byteMyCode

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

Codase - Source Code Search Engine

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

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

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

KickJava.com

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

jarhoo

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

All The Code - Source Code Search Engine

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

Code Search - O’Reilly Labs

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

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

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

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

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

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

■＠IT関連記事

■関連書籍