読んでる

プログラマが知るべき97のこと

プログラマが知るべき97のこと


この本のカテゴリ別目次に書かれているカテゴリごとに1日1つずつ引用していってみたいと思います。まずは「バグとその修正」と言うカテゴリから、5項目5日分だね。

09 他人よりまず自分を疑う アラン・ケリー

このタイトルは別にソフトウェア開発に限ったことではありませんね。あらゆる人間としての活動活躍において基本的に通用する言葉ですがね。

しかし実際には、コンパイラインタプリタ、OS、アプリケーションサーバ、データベース、メモリマネージャなど、システムソフトウェアのバグで問題が発生するということは、極めて稀なのです(ほぼ無いと言っていいでしょう)。


こうであるからして、なすべきことは自分を疑うこと。そのほうがよほど有意義であるということになるわけ。

コンパイラにバグほぼないのだとしたら、コンパイラの誤りを証明するよりも、自分のコードのバグを見つけることに時間とエネルギーを注いだ方がずっと良いということになります。自分の書いたコードを疑い、デバックに関して一般的に「すべき」と言われていることをやってみましょう。


その具体例もいろいろかかれているのですが、重要なのは前提条件を考えることだと。前提って本当に大事。人間の活動活躍において前提ってものはあり得ないくらいに重要だと思います。前提が抜けると、人は人とコミュニケーションなんてできないでしょ? 暴力的な人っていうのは相手の前提に対して想像力が働かない人のことですよね。ちょっと話がそれましたが、そのくらい前提は大事で、もちろんソフトウェア開発やプログラミングでも「前提」は重要であるということなのですよ。

問題発見の報告を受けたが、それを自分で再現できない場合には、報告者が実際にどういうことをしているのか、その現場を見るべきです。ひょっとすると、あなたが想像もしなかったようなことをしている可能性があります。予想とはまったく違った発想、違った順番で行動していることがあり得るのです。


ほらね。どんなに許しがたい思想を語る相手とのコミュニケーションであっても、その相手の前提を理解しようともせず「きもい」とか言っちゃうとあからさまに暴力が作動しますんでお気をつけください。相手がたとえ暴力でガンガンきたとしても、やり返さなくてもいいんですよ。自戒。話がそれた。でもそのくらい前提というのは大事なんですよということなのでした。