~/VibeHandbook
無料 PDF

08 · 05

書き直しではなく差分で反復する

コードが存在したら、また全体を求めたくなる衝動を抑えよ。「もっと良くして」のような曖昧なフォローアップは、動いているコードを捨て、すでに直したバグを再導入する。求める具体的な変更を指し示せ。

それは違う、全部書き直して。
関数は動くけど、二つ問題がある:
1. `throw new Error` の行のエラーは、throw する代わりに
   Result 型を返すべき — 上の validateUser 関数の
   パターンに合わせて。
2. ループが毎回 `items.length` を読み直している。巻き上げて。

その二つの変更の diff だけ見せて。

健全なサイクルは緊密なループだ。モデルにプロンプトし、出力を読み、小さく的を絞った差分で——決して全体の書き直しではなく——正しくなるまで磨く:

   ┌─────────┐     ┌─────────┐     ┌─────────┐
   │ 指示    │ ──▶ │ モデル  │ ──▶ │ 出力    │
   └─────────┘     └─────────┘     └────┬────┘
        ▲                               │
        │                               ▼
        │                          ┌─────────┐
        │         良い?            │ レビュ  │
        │   はい ◀─────────────────┤ diff    │
        │                          └────┬────┘
        │                               │ いいえ
        │      修正 (小さなdiff)        │
        └───────────────────────────────┘
                                    ドリフト? ▶ 最後の良い版に戻す

(全体の書き直しではなく)差分を求めることは、変更をレビュー可能に保ち、すでに動いている部分を保存する。AIの出力を同僚のプルリクエストのように扱おう。具体的な行にコメントし、的を絞った編集を要求する。変更が横道に逸れ、返答のたびにコードが望んだものから遠ざかっていくなら、パッチを当て続けるな——信頼できた最後のバージョンに戻し、より鋭い記述でそこからプロンプトし直せ。壊れた土台の上で前へ反復し続けるのは、混乱を積み増すだけだ。

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。