開発量マイナス7000行

最近、他人が作ったプログラムの機能追加+αを引き受けることになって、 さっそく頭をかかえております。 .cpp、.c、.h の各ファイルで、全部で約6万8千行。 単体のアプリケーションとしては、結構な量ですね。 プログラムの機能なんかは本題に関係ないので省略しますが、 +αとして、Windows 3.1用から95用への改訂も含まれています。

昔から、他人の書いたプログラムを読む苦労についてはいろいろと 語られていますが、私もどういう因果か、これまでにも何度か 他人のプログラムを改訂してきております。 去年やったのはあまりにも訳がわからないプログラムだったので、 必要なところ以外は極力見ないようにして、できるだけ早く自分の手を 離れるようにと心がけたものでした。 最初、「変更するのはほんの数項目ですから」なんて、さも簡単な改訂のように 言われたんですが(だったら自分でやれ)、 ひとつ変更すると連鎖的に影響が波及して悲惨。 おまけに、プログラムの構成上のことでひとつ訊いたら、

「そんなことは私にもわからないので自分で調べてください」

と言われて、かなりやる気がなくなりました。 作った本人にさえ、構成があまりに込み入っていてわからなくなっていたようです。 それまでも数人でよってたかって開発してきたらしいのですが、 「何のためにこうするのかわからないが、A氏が書いたものなので そのままにしてある」みたいな註釈が残っていたりして、ちょっと唖然。 この人はA氏に絶大なる信頼をおいているんでしょうかね。

今回のは全く訳がわからないという程でもなく、一通り全体を調べて 自分なりに咀嚼してから改訂していこうとしているのですが、 それでもいろいろとため息のでることが起こっています。


いらないファイルが多すぎる

改訂にあたっては当然改訂元のファイルが必要な訳で、「一式送ってください」と 言ったら、「全部で5メガバイト位あるんですけど」と言われてびっくり。 そんなに大量なのでは大変だなあと思っていたら、

.obj(目的プログラム)、.sbr(デバッグ用の記号表ファイル)

その他いろいろ含んだ一式が送られてきました。 こんなのは消してから送ってよ。

で、今までVC++1.0で開発してきたというプログラムを、VC++1.5でコンパイルして みました。 私のところではだいぶ前からWindows 3.1は使わなくなっておりまして、 95やNT4.0で16ビット・アプリケーションをコンパイルしようとすると、 VC++1.5を使う必要があるのです。

引数の型が違うとか、

switchの中にcaseもdefaultもない

とか、警告がぞろぞろ出てきてちょっと不安になりましたが、 一応コンパイルはできて、動くようになりました。

こういう警告は出ないように処置するのが基本。 でも今回は、その作業を先延ばしにして32ビット・アプリケーションへの 移行にとりかかることにしました。

ところで、よく見ると、コンパイルされないソースファイルがいくつかあります。 たぶん動作実験などで仮に作ったものがそのまま残っていたのでしょう。 これをごっそりと削除。

この事実から推測するに、*.hファイルの中にもいらないものがありそうな 予感がします。 というわけで、一度全部削除しておいてからコンパイルし、 ファイルがないと文句を言われた*.hファイルを順に戻していきます。 案の定、20個ほどのファイルは不要だったことがわかりました。

ここまでの作業で、約7000行分のプログラムを削除。 行数でプログラムの生産性を測ることにどれだけの意味があるか疑問ですが、 仮にこの指標で測ってみると、今日の開発量は

マイナス7000行

だった訳です。プログラムの中身はまだ見ていません。