@hanadix REBOOTED

音楽好き(聴く書く演る)なイット系労働者の日常と妄想

バグのないプログラムを作るなんて無理ですという件について

そう、そうなのだ。バグのないプログラムを作るのは無理なのだ。
そもそも、どうやってバグがないことを証明しますか?
「このプログラム、ずっと使ってるけど、バグったことない」という以外に、バグがないことの証明はできないのだ。

というか、どうしてそんなバグを作りこまないかどうかビクビクするんだ?
ちゃんとライブラリ関数のパラメータチェックして、想定外の値が来たら、エラーリターンしてる?
呼び出したアプリケーションはちゃんとエラー値をチェックして、適切なエラーログを吐いて処理を中断してる?
つまり、バグが入ってたらばれる作りにしてるか?

え?、パラメータチェックの分の処理時間がもったいない? #ifdef でテスト時だけ有効にして、リリース時のコードに入らなきゃいいじゃん。

そういうあたりまえのことをしないから、ドミノ倒しでおかしな状態でシステムがつっぱしって、真の原因の解析に何日もかかるんだよ。おれの作ったコードはエラーログみたらエラー要因が98%ぐらいはわかるよ。

人間はミスをする。バグは当然入る。入れないことは不可能だ。入ったときすぐ見つかるようにしろ。そして、バグが見つかってよかった、と心から喜べないなら、あなたはプログラマに向いていない。あなたが私に想像できないような天才プログラマなら別だが。

え、Java やってて UnitTest 書いてないの? ふーん。