2010年5月7日金曜日

プログラムを速く書くには?

等価交換理論というのがあって、様々な仕組みは交換可能である。
「プログラムを速く書く」という発想を転換して、「車で早く目的地に着く」方法をまず考えてみる。
道の上を移動するなら、移動距離が最短で、移動速度が速ければ速いほど、目的地に早く着く。
しかし、混んでる道では、速く移動することが出来ない。行列になってしまえば、目の前に居る車より速く移動できないからだ。
そういう場合は、他の混んでいない道を利用した方が良さそうだ。
距離が倍もある遠回りの道でも、空いてさえいれば、速く移動することによって、早く着くという目的を達成できる。

この発想をプログラムに戻すと、
「混んでいない」状態は、新規作成プログラムであると言える。
「混んでいる」状態は、既存のプログラムの編集作業であり、用心深く作業しなければならない状況だと言える。

既存のプログラムの改修などは、元のソースには手を入れずに、アダプター・パターンなどのデザインパターンを使って、新規作成で取り組むのが良い。
経験的にも、プログラムは、既存のソースを編集して作成するよりも、新規作成の方が断然速い。
つまり、プロジェクト終盤の仕様変更が一番コストが最も高いと思える。
後から後からチビチビと仕様変更されるのなら、最初にガツンと大量の要件を書いてもらった方が良い。

「移動速度を上げる」には、自分の力をパワーアップすることが必要だが、普段より2倍程度は働けても、3倍、4倍となると難しい。
この場合には、ソフトウェアツールを使うもしくは作るのだ。ソフトウェア開発にもソフトウェアの力を借りるである。

どうしてツールを使えば速くなるのか。それはテキストエディタでタイプするという作業が非常に低速なためだ。
たとえば、次の様なソースを







こういう風に手編集で直していないだろうか?







整然と書いた方がバグを防ぎやすいので、空白やタブ送りをして綺麗に揃えている筈である。
この綺麗にというのに時間がかかる。
自前のツールで、「左揃え」するツールを作っておくと、一瞬である。
カタカタとキーを連打している自分を見つけたら、何かツールを使えないか、なければツールを作った方速いのではと考えた方が断然良い。

つまり、プログラムを速く書くためには、
・新規作成で
・ツールなどを駆使する
のが良い方法であると言える。