デバッグのチェックリスト
これらを順番に進めてください。いきなり「直して」に飛びつくと、AIは堂々巡りに陥ります。
- 確実に再現する。 バグが毎回起こる正確な手順を見つけます。再現できないバグは、直ったことを確認できないバグです — 消えたかどうか永遠に推測するしかなくなります。断続的に起こるなら、それを切り替える変数を狩りましょう。特定の入力、ログイン状態かログアウト状態か、遅いネットワークなど。
- エラーそのものを読む。 流し読みしないこと。エラーメッセージとスタックトレースの 先頭 は、たいてい問題が起きたファイルと行を示しています。初心者は、画面上で最も有用な一文を、怖そうに見えるという理由で読み飛ばしてしまいがちです。
- コンテキストを集める。 エラーのテキスト、スタックトレース、関連するコード、そして期待していた挙動の一行説明を集めます。
- AIに全体像を渡す。 上記すべてを1つのメッセージに貼り付けます。AIに仮説を立てさせましょう。
- 修正ではなく仮説を立てる。 「直して」より先に「これの原因は何か?」と尋ねます。間違った理論に基づく間違った修正は時間の無駄です — そして時には、最初のバグの上に 2つ目の バグを積み上げます。
- ログを追加して仮説を検証する。 コードを変える前に、コードが実際に何をしているのかを確認します。
- 問題を二分探索する。 怪しい範囲を繰り返し半分に切り分けて、どこで 壊れるのかを絞り込みます。
- 症状ではなく根本原因を直す。 修正が、目に見える不具合だけでなく なぜ 壊れたのかに対処していることを確認します。
- 修正を検証し、リグレッションをチェックする。 再現手順をもう一度実行します。それから、近くの機能がまだ動くことを確認します。
順番は恣意的ではありません。各ステップは、次のステップが必要とする証拠を生み出します。再現は読むものを与え、読むことは集めるコンテキストを与え、コンテキストはAIに仮説を立てる材料を与えます。ステップを飛ばせば、次のステップに穴を食わせることになります。