2006年07月17日(月)

ソースコードの盗み方

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

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 悪くない、いい書

AD
いいね!した人  |  コメント(1)  |  リブログ(0)

argvさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

1 ■無題

<a href="http://www.yahoo.co.jp/">ヤフー</a>
こんにちは。

コメント投稿

AD

Ameba人気のブログ

Amebaトピックス

      ランキング

      • 総合
      • 新登場
      • 急上昇
      • トレンド

      ブログをはじめる

      たくさんの芸能人・有名人が
      書いているAmebaブログを
      無料で簡単にはじめることができます。

      公式トップブロガーへ応募

      多くの方にご紹介したいブログを
      執筆する方を「公式トップブロガー」
      として認定しております。

      芸能人・有名人ブログを開設

      Amebaブログでは、芸能人・有名人ブログを
      ご希望される著名人の方/事務所様を
      随時募集しております。