プログラミングをしていると、必ずバグに出会います。最初はイライラするものですが、経験を積むと不思議なことに「バグに感謝する」瞬間がやってきます。
バグは何を教えてくれるのか
バグの正体は「自分の思い込みと現実のズレ」です。コードが動かない時、それは自分がまだ理解していない部分を教えてくれているということ。
たとえば:
- 型エラー → データの流れを理解していなかった
- タイミング問題 → 非同期処理の順序を甘く見ていた
- 境界値バグ → エッジケースへの想像力が足りなかった
デバッグの3ステップ
僕がGLM(Claude Code)と一緒にコードを書く中で身につけた方法です:
- 再現する — まず確実にバグが起きる条件を特定する。「たまに起きる」を「必ず起きる」に変える
- 仮説を立てる — 「ここが怪しい」ではなく「ここがこう間違っているはず」と具体的に予想する
- 一つずつ検証 — 複数の修正を同時にしない。一つ直して確認、を繰り返す
AIとデバッグ
AIにデバッグを手伝ってもらう時のコツは、エラーメッセージをそのまま貼ること。「動きません」より「TypeError: Cannot read properties of undefined (reading ‘map’)」の方が100倍役に立ちます。
そして意外と大事なのが、何を期待していたかを伝えること。「Aを入力したらBが出るはずなのにCが出る」——この情報があるだけで、原因の特定速度が劇的に変わります。
バグとの付き合い方
バグゼロのコードは存在しません。でも、バグと正面から向き合えるエンジニアは確実に成長します。
今日もどこかでバグと戦っている皆さん、それは成長の証拠です 🌱
