2008年02月02日(土)

車輪を発明しようとする前に

テーマ:プログラマの心得

プログラミングをしていて、何か機能が必要になったとき、「こういう機能は既に誰かが作っているのではないか」と考えてみることは重要である。そういう発想がないと「車輪の再発明」をしてしまう。何でも自作しないと気がすまない人もいるが、既に安定して動くコードやライブラリがあるのなら、それを流用した方が効率がよいことは言うまでもない(プログラミング自体の勉強が目的なら別だが)。



もちろん、事前に、既存のコードやライブラリを探す場合と自作する場合とで、どちらが時間が掛かりそうかを判断する必要がある。


そのためには、自分のプログラミング能力と、調査能力を把握しておかなければならない。調査能力については、ネットの「検索力」も重要だが、周囲の人や掲示板等への「質問力」なども影響する。


そして、もっと重要なのは、探そうとしている処理のニーズ(一般性と言ってもいい)を見極めることだ。多くの人が必要としそうな処理ならすぐに見つかるが、限られた人しか必要としないようなものは見つからない。当り前のことだが、その境界がうまく見極められない人もいる。


自分で判断がつかない時は、制限時間を決めて探してみて、時間内に見つからなければ自作する、という方法を取ることもできる。



次に、品質の判断が必要である。見つけたプログラムが信頼できるかどうか、ということである。ソースコードの記述内容の確認や動作を確認するのはもちろんだが、他の人がどの程度利用しているか、その評価はどうか、といった利用実績に関する情報は大きな判断材料となる。


また、配布元の Web サイトにメンテナンス情報やサポート掲示板などがあれば、その情報が参考になる。そういったものがなくても、作者が技術的な内容の文章を公開しているようなら、(たとえそれが必要としているプログラムとは関係のない情報であっても)その内容から、ある程度、技術レベルの判断ができるだろう。



「車輪の再発明」は、新しいプログラミング言語を使う場面でも起こりうる。最近は、言語の標準機能が充実しすぎて、その全てを把握することが困難になってきているからだ。「こういう機能ぐらい、標準で付いてるだろう」といった見当をつけることができなければ、標準の機能まで自作してしまいかねないのである。


この問題については、事前にその言語のリファレンス等にざっと目を通しておくと、かなり改善する。詳細な仕様まで覚える必要はなく、「そういえば、こういう機能は標準で用意されていたような・・・」という程度に思い出せれば十分だ。詳細は、本当に必要になった時に調べればよい。


インターネットやオンラインヘルプは必要な情報をピンポイントで調べるには向いている。しかし、どんな機能があるのかという観点で全体を眺めておきたいような場合には、本の形の方が向いている。新しい言語を学ぶ場合には、標準ライブラリ等の機能を網羅したリファレンス系の書籍が一冊あるといいだろう。









頭を使って探せ
ソースコードの盗み方
簡単コピー・プログラミングの罠
プログラミングの入門書は何が良いか?




Boost C++Librariesプログラミング 第2版
稲葉 一浩
秀和システム (2007/07)
売り上げランキング: 22671
おすすめ度の平均: 4.0
4 boostを初めて使う方、既に使用している方どちらも持っていて損はありません


Jakarta Commons クックブック―Javaプロジェクト必須のレシピ集
ティモシー・M. オブライエン Timothy M. O’Brien 長瀬 嘉秀 テクノロジックアート
オライリージャパン (2005/08)
売り上げランキング: 140918
おすすめ度の平均: 4.5
4 分かりやすい
4 まずは目次を見てから
5 「ツチブタ」本として、広く読まれてほしい一冊です
AD
いいね!した人  |  コメント(0)  |  リブログ(0)

argvさんの読者になろう

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

コメント

[コメントをする]

コメント投稿

AD

ブログをはじめる

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

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

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

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

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