ソースコードの盗み方 | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

プログラミングを行う際に、既存のソースコードを流用することは多い。自分が過去に書いたコード、周囲の仲間が持っているコード、ヘルプや書籍に掲載されているコード。ネットで探せば、最新技術やマイナーな技術のものでも、何かしら発見できることだろう。

Yahoo! や Google のような一般的な検索エンジンでも、適切なキーワードを指定すれば、ソースコードを検索することができる。コードによく出てくる文字列(例えば、C言語なら「include」や「void」など)を含めて検索すればよいだろう。


こうした一般のページ検索では、コードの解説や関連情報なども見つかるので有意義だ。しかし、一方で、目的とは違った「ノイズ」を拾うことも多い。純粋にソースコードだけを検索したいような場合には、専用のサイトを使うとよい。

例えば、

 ・Koders
 ・Krugle
 ・Codase
 ・CPAN code search by gonzui
 ・codefetch{

など(※1)。こうしたサイトでは、色々なプログラミング言語のオープンソースなどから、キーワードに一致するコードを検索できる。他にも、特定の言語に特化したものもあるし、Code SnippetsSnipplr のように、コードをユーザーが登録する形のものもある(※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開発の軌跡とオープンソース革命
グリン ムーディ Glyn Moody 小山 裕司
アスキー (2002/06)
売り上げランキング: 99,535
おすすめ度の平均: 3.38
4 来しかた、行くすえを考えさせる本
4 オープンソースという概念への前提
1 訳が最悪


パクる技術
パクる技術
posted with amazlet on 06.07.16
斎藤 広達
ゴマブックス (2005/10/21)
おすすめ度の平均: 4
2 「あとがき」のメッセージが全てか?
4 ポップ且つ骨太
5 悪くない、いい書