028 2000/12/17 最近のプログラミング技法

最近書いてないですねえ。

[ 前回 ] [ 次回 ] [ 戻る ]


以前あった話。

例によって外人部隊となってお手伝いにいったわしは、仕様などいろいろ読みながら「不条理」という単語を思い出していたのでした。あ、言語はVBですので。

その1:コメント

「コメントのフォーマットはこれこれ…」

まあそんなもんか。

「プログラムの空行は不可」

…はいぃ?

どゆこと?見やすいように開けておく場合もあるというのに。なになに、「行数計算が云々…だから」
…。はあ。「行に「'」をつけていれればいい」?はい。もちろんぼこぼこ行を開けて、「'」をつけましたとも。なんだかやりきれないなあ。

UNIXの場合は、行数なんかwcコマンドとかその他いろいろのコマンドを組み合わせれば一発で出てくるから問題ないのになあ。VBでもそんなことを考える人がいないのかなあ、と思いながら、非生産性的作業をしていたのでした。



その2:エラーの行き先

※On error goto:エラーが発生した場合、goto先のラベルに飛ぶ

リストを見るとOn error goto の嵐。
サブルーチンの頭で「On error goto」があってそれっきり。…それじゃあ、どこでエラーが発生したか分からなくなるのに。(事実、人のプログラムではまった)

On error gotoを確実にエラーが起こりそうな場所に仕掛けておくとか、そもそもOn error gotoなんて使わずに、

  On error resume next  ' エラー無視。エラーが発生しても何食わぬ顔で次の行へ
    :
   (エラーが起こりそうな処理)
    if err.no = 云々 ' エラーNOで識別して処理(…最近VBやってないのでこれでよかったっけ?)
    :
  On error goto 0       ' エラーをエラーとする

とか書いておいたほうがデバッグが楽なような気がするのだが…
ちなみに、「On error goto ラベル」行き先は、どこでも決められます。…そう、そのまんまgotoと一緒。スコープ外でも可能。

MSのヘルプにも堂々と使われているのでタチが悪い。確かに、On error gotoを使うと見やすくなる場合もあるけど。適材適所ってことだな。でも濫用すると…まずいでしょ、これ。


その3:関数。

○○処理の使いかた:global変数に代入したあと、関数起動。

…ぉぃ。
引数って何?…ねえってばさ ;_;
泣く泣くこの仕様で組む。しくしく。文句は言っておきましたが

end:立つ鳥後を…?

というわけで、お手伝いの終わりに、怪しそうなところをメモ書きにして送っておきましたけど(特にその3とか)、どうなってるんだろうな、あのプロジェクト。
悪い話は聞かないけど。