Yahoo! や Google のような一般的な検索エンジンでも、適切なキーワードを指定すれば、ソースコードを検索することができる。コードによく出てくる文字列(例えば、C言語なら「include」や「void」など)を含めて検索すればよいだろう。
★
こうした一般のページ検索では、コードの解説や関連情報なども見つかるので有意義だ。しかし、一方で、目的とは違った「ノイズ」を拾うことも多い。純粋にソースコードだけを検索したいような場合には、専用のサイトを使うとよい。
例えば、
・Koders
・Krugle
・Codase
・CPAN code search by gonzui
・codefetch{
など(※1)。こうしたサイトでは、色々なプログラミング言語のオープンソースなどから、キーワードに一致するコードを検索できる。他にも、特定の言語に特化したものもあるし、Code Snippets や Snipplr のように、コードをユーザーが登録する形のものもある(※2)。いろいろ調べてみるといいだろう。
★
既存のコードを流用した場合、そのプログラムの動作については、流用した人に責任がある。コードがそのまま使えるかどうかきちんと吟味し、必要なら修正しなければならない(もちろん、ライセンスの問題についても注意が必要だ)。当り前のことだと思うかもしれないが、それが出来ていない人もいる。ネットで見つけたものを安直に自分のコードに貼り付けて、不具合を出してしまうのだ。
ネットに限らず、一般に公開されているコードが正しく動くという保証はない。バグがあるかもしれないし、コンパイラのバージョンが違えば動作が変わるかもしれない。あるいは、本質的ではない部分の動作(例えば例外処理のような)が不十分だったり、自分のシステムのポリシーと合わないようなこともあるだろう。
ネットの普及により、以前に比べて簡単にソースコードを入手できるようになった。また、プログラミングの技術が多様化し、変化も速くなってきている中、コードを流用しなければならない状況もますます増えていきそうだ。であるからこそ、安易に扱うことのないように注意したいところである。
--- 2006/10/9 追記 ---
Google も Google Code Search を開始した。詳しくはこちら(MYCOMジャーナル) 。
--- 2007/7/31 追記 ---
Web Development Toolbox: 120+ Web Development Resources の「Code Snippets, Search Engines and Repositories」という所にリンク集あり。
※1
Koders では、ブラウザ(FireFox)や統合開発環境(eclipse/VS.NET)用のプラグインが公開されていて便利だ。また、Krugle については、こちら(WIRED NEWS) を参照されたい。
※2
いわゆる CGM (Consumer Generated Media) 的なサービスなので、利用者が増えるほど、使えるものになっていくだろう。
■関連記事
・頭を使って探せ
・簡単コピー・プログラミングの罠
・簡単フレームワーク・プログラミングの罠
・誰のコード?
ソースコードの反逆―Linux開発の軌跡とオープンソース革命
posted with amazlet
on 06.07.17
グリン ムーディ Glyn Moody 小山 裕司
アスキー (2002/06)
売り上げランキング: 99,535
アスキー (2002/06)
売り上げランキング: 99,535
おすすめ度の平均:
来しかた、行くすえを考えさせる本オープンソースという概念への前提
訳が最悪
斎藤 広達
ゴマブックス (2005/10/21)
ゴマブックス (2005/10/21)
おすすめ度の平均:
「あとがき」のメッセージが全てか?ポップ且つ骨太
悪くない、いい書