« 電話早取り | トップページ | 低価格ミニノートPCは「がらくた」 »

2009.04.22

ソフトウェア再利用

ソフトウェア再利用、その理想と現実

連載開始でまだ具体的な話までは行ってないけど。

ソフトウェアの再利用というのは、昔から言われている割にはイマイチこれと言った決定打に欠ける部分があるような感じですね。
私の場合、最初は一切再利用を考えずに作って、次に過去のコードを流用できるなと思った時にはコピペ流用し、更にもう一度利用機会があって、後々他でも使いそうだったら再利用可能な形で作り、今回だけで終わりそうならそのままコピペ流用という感じでやっています。

最初から常に再利用を考えて作るのは無駄が多い。

まず第一に、将来本当に必要になるかどうかわからない(^^;
そりゃ、世間一般を見れば、同じようなコードを使い回せるような仕事はあるかもしれないけど、自分の会社の仕事として考えた場合に、流用できるような仕事が次にある保証は無い。

次に、どちらかと言うとこちらが主因ですが、どのような再利用のされ方をするのか、最初から想定するのは難しい。
一回目の利用だと、どの程度の部分がどの程度流用可能か(再利用可能か)というのは想定しにくいし、どのようなパラメータを弄れる方が使い勝手が良いかというのは判断が難しい。
その点、3回目の利用であれば、だいたいどの部分が共通で使われるかとか、どの部分が可変であれば使い道が広いかというのもわかってくる。
そのモジュールに対する「要求仕様」を最初に空想するのと、3回の利用で実需によって「要求仕様」が固まるのでは、後者の方が現実的なものになる。

最後に、再利用を前提とした場合、「利用できそう」な部分があったら無理矢理それに合わせて使ってしまうという事が起きやすい。
一から書いたり既存のコードをベースに大幅に書き換えれば素直に実装できるような場合でも、「再利用」するために、無理な呼び出しをして、無理な「共通モジュールの改変」をしてしまうという事態に陥りやすい。
これも、どこからが「無理な」使い方で、どこからが「素直な」使い方なのかというのは、後になってみないとわからない部分もあるので、そんな事になるのであれば、最初は再利用を考慮せずに素直に書いておいて、後で共通項がみつかった段階でマージするという方が、柔軟な発想を妨げないのではないかと思う。
で、その「後で」がいつかと言えば、まぁ、3回目ぐらいかな?と。

まぁ経験によって、最初に書く時でも「後々再利用するだろうな」という予想は付く場合が多いですが、そういう場合でも、使い回しやすいようなコードを書いたり、切り出しやすいようなモジュール構成にはしますが、その時に必要ない部分までは作り込まないようにしています。
必要なら必要になった時に書き加えればいいぢゃんって事で(^^;

|

« 電話早取り | トップページ | 低価格ミニノートPCは「がらくた」 »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/4003/44756245

この記事へのトラックバック一覧です: ソフトウェア再利用:

« 電話早取り | トップページ | 低価格ミニノートPCは「がらくた」 »