今までに、超基本的な問題点として説明したことが、このプログラムにも多数あります。汚い、 下手なプログラムに共通する問題点です。あまりにも当然過ぎて、こんなプログラムを書いていて、 図々しくも「金」をもらっているなと思います。まあ、「金」を出す方もすっごい太っ腹(本当は 何も分かっていないだけ)だと思うけどね。
■コメントが全然ない■ソースプログラムに全くコメントが見当たりません。関数の説明もなければ、マクロや変数の説 明もありません。もちろん、誰が作ったかも書かれていません。作成、変更履歴も全然ありません。 簡単な数十行のテストプログラムならともかく、何万行もあるソフトで、こんなコーディングは 無謀以外の何ものでもありません。当然、後から参加した人は、まるで暗号を見せられているよう な状態で、バグさえ出なければ、汚い個所もそーっとしておくようになっていました。 コメントを書かないことは、泥沼の始まりを意味すると思って、決して間違いないですよ。 人の書いたプログラムなので、各関数の意図していることが良く分からないことも多いのですが、 まあこんなものであろうという程度の簡単なコメントを修正版プログラム(リスト2−4)に入れ てみました。
■関数が長い■134行からの関数 keyinput_sub は141行あります。この関数は、単に長いだけでなく、goto文が いっぱいあって、いやらしくなっています。でも、他のファイル中のgoto文よりはきれいで、goto 文を取り除くことが可能でした。 関数は、60行以内に、最悪でも100行以内にしましょう。長い関数は、いつも最大の問題で す。詳しくは連載第1回を参照してください。 この関数をいかに「分解」するかは、goto文とのからみもあるので、別に後述します。
■goto文■goto文はエラー処理、終了処理を除いて使用禁止が原則です。それ以外は、必ず書き直さなけれ ばいけません。 今回出現しているgoto文は比較的簡単な例ですので、これらのgoto文を無くすることは、簡単な 練習問題みたいなものです。回答例の一つが修正プログラム(リスト2−4)です。
|