エラーチェックのこととか独り言

関数の戻り値による、エラーチェック。
例外処理による、エラーチェック。


関数の戻り値によるエラーチェックを自分は最初まじめにやってました。
でも、めんどくさくなった。とくに、directxの初期化の長さで嫌になった。
例外処理を知る。おおすばらしいと飛びつきます。が、さいしょだけで、
趣味のプログラムから始まり、
だんだんtry{...}catch(Exception e){}で握りつぶしてしまったりしてしまいました。
とくに、携帯Java 10K制限で、クラスを増やすとかなりの容量を食われるので、
Exceptionを嫌うように。そして、わけがわからなくなってしまった。
もっといい、方法ないかなぁと考えてしまう。でも、もうないよ。


やるべきことは単純。それをより効率よくかければいいのであって、その仕組みよりいいもの考えることじゃないよ。と、自分で思うのでした。


いまだ混乱して自信を失ってる。いったい何年プログラマやってるのよと思うのでした。
社会人1,2年目でみっちりしこまれたろうに。
でも、なんか、ちゃんと分かってなかった気がするから、ちゃんと分かった気になるまで、
まじめにエラー処理していくこった。と思うのでした。


ある意味トラウマはこのプログラム。

FILE *fp = fopen("text.txt", "w");
fprintf(fp, "test\n");
fclose(fp);

これをがちゃがちゃと、一気に10秒くらいで書いてると、
これを尊敬する上司の方に見られて、「凄いプログラム書くなぁ」と言われ、
「どうせ、エラー処理してないですよ。すいませんねぇ」といったら、
「いやぁ、教科書みたいできれいなプログラムだ、とほめたつもりだったのだけど。」
と、言われたこと。これが混乱の元。いやぁ、駄目だろうと思ってたのだけど。
「ああぁ」
あと、WinAPIのバグを対策してない、関数作ったときも、完璧だと思うといわれたこと。
あれも、いやぁ、完璧じゃないよ。サイズ64k超えるとおかしくなるもの。チェックしなきゃ。
と思ってたところかなぁ。

制御系から、インターネット系にきたら、偉く、チェックが甘かった。検査いないんだもん。
(バグは駄目だけど、チェックが甘かった)
外字コードがおかしいのは、「外字コードを使う奴が悪い」とか、、、。
と思ったら、自己管理だった。出来る人はちゃんと自己チェックしてた。


スピード重視だった。なんだか、わけ分からなくなっていってしまった。


これは、周りが悪いんじゃない。
これらの情報を元に、寄り良い方法を選択して実行していく他ない。
そのとき、その場にあった、方法があるのだから、フレキシブルに選択して使っていかなくてはならない。その器用さが自分には必要だろうと思うのでした。VB使った後、C書くと混乱する。ということはもはやなくなったように、器用さを身に付けよう。


今考えると、エラー処理抜いているプログラムは
教科書としてはよい。デバッグ時に書くなら良い。
でも、実践プログラムとしてはまずいことのほうが多い。という感じかなぁ。
チェックしすぎても、正しいチェックをしている上では、多少遅くなったり、
プログラムが大きくなってしまったとしても、問題にならないことが多い。
(携帯Javaはちがうけど。今はだいぶ要領増えたしいいだろうなぁ)
絶対ファイル書くことができることを前提とした場合はこれでいいし。
フリーのCGIのロックファイルとか、
結構こういう前提ありで書いて会ったりするようなきもする。
スピード重視の部分でチェック増えると問題になるほど遅くなることもある。


一度、考えることだね。プログラムのポリシーを。


このプログラムは安定重視で作ります。
チェックもバリバリします。
例外処理もPCだからバリバリOKですとか。
このプログラムは自分の学習目的で作ります。
このプログラムはプロトタイプモデルとして作ります。
JavaAppletでの動作を考えているのでJavaの1.1.8で動作することを前提に書いてますとか。
携帯向けに考えているので、サイズの小ささを優先して書いてるから、
カプセル化してませんとか。
場合によって、変わるもんなぁ。
なんで、D言語なのに、携帯向けみたいなプログラム書いてるんだろうと
思いつつやっちゃったり。
C++なのに、ヘッダわけないで、全部クラスのなか書いちゃったり。
やめよう。ほんと、困るから。


てことで、出来るだけ標準的なソース書くぞ!!
とおもったけど、それだと、標準変わるから。
自分専用の書き方と、標準的書き方と、学習用書き方と3つくらい用意して、
それにあった書き方を、場合によって書き換えられるようにしたほうがいいな。
じゃないと、標準変わったことに、いつも不満かかえてしまふ。
これの練習をしばらくしよう。うん。で、いったりきたりしてみるじょー。


あれ?やめるのか、2つにするのかで、考えが矛盾してる。
困った。しばらく標準的なものをやって、徐々に自分専用とわけてったらどう。
てか、自分専用で書いたコードあるし、それを標準的コードに直せばいいか。
とりあえず。辛いとか、思っても、いい仕事してるゼと思うか、無心でやる練習になるし。
そうしよう。


ああ、しかし、プログラムの書き方にまでトラウマが残ってるとは思わなかったなぁ。
と、書いてて思ったのだった。