~/VibeHandbook
PDF ฟรี

บท 08 · 05

แก้ทีละส่วน (Diff) ไม่ใช่เขียนใหม่ทั้งหมด

เมื่อมีโค้ดอยู่แล้ว จงอดใจไม่ขอให้เขียนทั้งหมดใหม่อีกครั้ง คำขอตามหลังที่คลุมเครืออย่าง "ทำให้ดีขึ้นหน่อย" จะทิ้งโค้ดที่ใช้งานได้แล้วไปและนำบั๊กที่คุณแก้ไปแล้วกลับมาใหม่ ให้ชี้เฉพาะจุดที่คุณต้องการเปลี่ยนแทน

That's not right, rewrite the whole thing.
The function works, but two issues:
1. The error on line with `throw new Error` should return a
   Result type instead of throwing — match the pattern in
   the validateUser function above.
2. The loop re-reads `items.length` each iteration; hoist it.

Show me just the diff for those two changes.

วงจรที่ดีต่อสุขภาพคือลูปแคบ ๆ นี้: ป้อนพรอมต์ให้โมเดล อ่านผลลัพธ์ แล้วปรับแก้ด้วย diff เล็ก ๆ ที่ตรงจุด — ไม่ใช่เขียนใหม่ทั้งหมด — จนกว่าจะถูกต้อง:

   ┌─────────┐     ┌─────────┐     ┌─────────┐
   │ PROMPT  │ ──▶ │  MODEL  │ ──▶ │ OUTPUT  │
   └─────────┘     └─────────┘     └────┬────┘
        ▲                               │
        │                               ▼
        │                          ┌─────────┐
        │         good?            │ REVIEW  │
        │   yes ◀──────────────────┤  diff   │
        │                          └────┬────┘
        │                               │ no
        │      refine (small diff)      │
        └───────────────────────────────┘
                                    drift? ▶ reset to last good

การขอ diff (แทนการเขียนใหม่ทั้งหมด) ทำให้การเปลี่ยนแปลงยังตรวจสอบได้ และรักษาส่วนที่ทำงานได้อยู่แล้วเอาไว้ ปฏิบัติกับผลลัพธ์ของ AI เหมือนกับ ของเพื่อนร่วมทีม: คอมเมนต์ในบรรทัดที่เจาะจง ขอให้แก้เฉพาะจุด เมื่อการเปลี่ยนแปลงเริ่มเบี่ยงเบนไปเรื่อย ๆ และโค้ดห่างจากสิ่งที่คุณต้องการมากขึ้นทุกครั้งที่ตอบกลับ อย่าพยายามปะแก้ต่อไป — ให้ย้อนกลับไปยังเวอร์ชันสุดท้ายที่คุณเชื่อถือได้แล้วเริ่มพรอมต์ใหม่จากตรงนั้นด้วยคำอธิบายที่คมชัดกว่าเดิม การเดินหน้าต่อบนฐานที่พังแล้วมีแต่จะทำให้ความยุ่งเหยิงทับถมมากขึ้น

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี