26 "select"はおかしくない
たいていの場合バグはOSやネットワークの問題ではなく、
設計ミス、コーディングミスが大半なので、
システムのせいにしない。
27 仮定せずに、証明すること
バグに遭遇したら、ただ単に修正するのではなくなぜバグが起こったのか、
なぜ初期の段階で未然に防げなかったのかなどを考える必要がある。
28 テキスト操作言語を学ぶこと
例:
データベーススキーマのメンテナンス
Javaのメンバーに対するアクセス
テストデータの生成
書籍の執筆
など。
29 コードを生成するコードを作成すること
消極的コードジェネレータの作成
(成果物を作り出すために一度だけ実行する)
例:
- 新規ソースファイルの作成
- プログラミング言語の一括変換
積極的なコードジェネレータの作成
(再利用可能なコードジェネレータ)
コードを作成しないコードジェネレータもある。
設計の問題
30 あなたは完璧なソフトウェアを作ることができない
上記の現実を認識する。それを認識しないと、
永遠に作業工程を終了させることはできない。
全てのデータを確認し、悪いデータにはassertをかける。