メールマガジン IB News

[Message for You from I.Brains,Inc.]
----------------------------------------
アイ・ブレーンズよりあなたへの
        メッセージ Jun.17,2001
----------------------------------------
WebToastやMackeyから、
      HTML版も発行しています。
----------------------------------------
本日は、
    プログラムのコツとデバッグ、です
----------------------------------------
プログラムのコツとデバッグ

 プログラムの不具合をバグと言い、それを
直すことをデバッグと言う事は知っている方
も多いでしょうが、前にも書いたような気も
しますが、この、不具合を直す作業のコツは、
どこまでが正しいのかを見極める作業だと私
は思っていまして、それを知らない人も多い
ように思います。

 デバッグ作業が進まない人の特徴は、じっ
と腕組みをして考えて、そうだここが悪いに
違いない、と直して、試してみて、う〜ん、
違ったかとまた考えるとか、ソースコードを
見て、ここは良いはず、ここも良いはず、う
〜ん、分からないなぁ、と悩むとか、そうい
う行動が多いように思います。

 これでは、当てもので、なかなか正解に達
しません。

 時には、大々的に、システムや言語側のバ
グではないか、と言い出す人が居て、確かに
そういう可能性もあるのですが、そういう場
合は、多くの人が同じ目に遭っているはずで
す。つまり、もっと前に分かっている可能性
が高いのですが...

 それよりも、自分のミスであることの方が
遙かに多いのが現実です。自分が不完全で、
間違える可能性も十分にあるということを考
える謙虚さが必要です。

 で、そういう時のコツですが、上に述べた
ことをもう少し砕いて言うと、以下のような
ことではないでしょうか。

1)プログラムよりデータを見る。
2)どこまではうまく行っているか、を確認。
3)複雑なものを一度に対象にしない。

 大概のプログラムはデータを扱うので、正
しいデータを読み込み、正しいデータを加工
したり作ったりしているか、それを確認する
ことが大切です。

 そして、プログラムの動作は、出来事の系
列なので、その系列のどこまでがうまく行っ
ているかを確認する作業が大切です。

 ここまでは、うまく行っている、という認
識を得るということは、うまく行っていない
かもしれない部分の範囲が狭くなってきてい
るということで、だんだん対象が単純になっ
てきているはずだということです。

 人間、見通せる範囲のことだと、比較的間
違いが少ないのですが、今この瞬間、見えな
い部分の事も配慮する必要がある、となると、
とたんに複雑になり、処理能力が落ちるのが
普通です。

 以上のようなことの、キーが、「どこまで
が正しいのかを見極める」ということだと私
は思っているわけです。

 そもそも、プログラミングに於いては以下
の理解が大切で、それが曖昧だとデバッグも
何もないのですが...

1)プログラムがデータを加工する。
  どれが対象となるデータか?

2)何が入力で、何が出力か?
  どう加工するのか? (HIPO!)

3)どういうモジュール構成か?

4)環境はどうなっているか?
  特に実行環境に制限があると、プログラ
ムの「作り」を変える必要があるときが結構
あります。例えば、100MのLAN上で動
くのか、電話線を介して動くのか、短い間に
沢山起動されるのか? 単独でゆっくり動作
しても構わないのか、などなど...

5)誰がどのように使うのか?
  不特定多数の人が使うものと、特定小数
の人が使うものとでは、やはり「作り」が違っ
てきます。
  また、かなり長く、繰り返し使うものと、
一回限りの使い捨てでも大きく違います。
  条件が変更される可能性のあるものには、
データ部分を外に出すといった、そのような
配慮が、また、必要です。

----------------------------------------
ソフト&コンサルタント会社 
 株式会社アイ・ブレーンズ より、
  その時々の話題などをお届けします。

PCの基礎知識やプログラミング入門、
   ときおりの各種情報・話題などを
      ランダムにご提供致します。
バックナンバー等は、WebPageをご覧下さい。

----- HTML版 フッター ---------------------

 発行者:   株式会社アイ・ブレーンズ
 E-mail:    mail@ibrains-jp.com
 URL:     http://www.ibrains-jp.com/

 配給元:   ウェブトースト & Mackey

 解除は、発行者又は配給元のWebPageからできます

------------------------------------------------
このメールマガジンは、WebToast、Mackey
           を利用して発行しています。
        (http://www.ekke.co.jp/toast/)
        (http://macky.nifty.com/cgi-bin/bndisp.cgi?M-ID=ibnews)
------------------------------------------------