⚡ ระดับสูง · บทที่ 20 · อ่าน 10 นาที

ใช้ Claude Code ทำโปรเจกต์แรก

ขั้นที่ 1: เปิดในโฟลเดอร์โปรเจกต์

Claude Code ทำงาน “ต่อโฟลเดอร์” — โฟลเดอร์ที่เราเปิดมันคือขอบเขตงานของมัน:

cd path/to/my-project
claude

เคล็ดลับ: อย่าเปิดที่โฟลเดอร์กว้างเกินไป (เช่น ทั้ง Desktop) เพราะมันจะเห็นไฟล์ ที่ไม่เกี่ยวเยอะ เปลืองเวลาและบริบท — เปิดที่โฟลเดอร์โปรเจกต์ตรง ๆ ดีที่สุด

ขั้นที่ 2: ให้สำรวจก่อนสั่งแก้

นิสัยที่ดีที่สุดของคนใช้ Claude Code เป็น: อย่าเพิ่งสั่งแก้อะไรในประโยคแรก ให้มันอ่านทำความเข้าใจก่อน เหมือนพนักงานใหม่ต้องดูงานก่อนลงมือ

✏️ พรอมต์เปิดงาน (ใช้ได้กับทุกโปรเจกต์)
อ่านโปรเจกต์นี้แล้วสรุปให้ฟังหน่อย: 1) โปรเจกต์นี้ทำอะไร 2) โครงสร้างไฟล์สำคัญ 3) ใช้เทคโนโลยีอะไร 4) มีจุดไหนที่ดูเสี่ยงหรือควรระวังเป็นพิเศษ — ยังไม่ต้องแก้อะไรทั้งนั้น

ประโยคท้าย “ยังไม่ต้องแก้อะไร” สำคัญมาก — กันไม่ให้มันรีบลงมือก่อนเราพร้อม

ขั้นที่ 3: สั่งงานทีละเรื่อง ชัด ๆ

หลักเดียวกับบทที่ 4 และ 8 แต่เพิ่มความเฉพาะเจาะจงของ “ไฟล์และอาการ”:

  • ❌ “แก้บั๊กให้หน่อย”
  • ✅ “หน้า login มีบั๊ก: กรอกรหัสผิดแล้วหน้าจอขาวเปล่า ไม่ขึ้น error message — หาสาเหตุและแก้ให้หน่อย”

งานใหญ่ให้แตกเป็นขั้น พิมพ์เป็นลิสต์ได้เลย:

✏️ สั่งงานหลายขั้นในครั้งเดียว
ทำตามลำดับนี้: 1) เพิ่มปุ่ม 'กลับขึ้นด้านบน' ที่มุมขวาล่างทุกหน้า 2) ให้ปุ่มโผล่เฉพาะตอนเลื่อนลงมาเกิน 1 จอ 3) เสร็จแล้วรัน build เช็คว่าไม่พัง แล้วสรุปว่าแก้ไฟล์ไหนไปบ้าง

เข้าใจ Permission Mode: ระบบขออนุญาต

ก่อน Claude Code จะแก้ไฟล์หรือรันคำสั่ง มันจะแสดงสิ่งที่กำลังจะทำแล้วรอให้เรากดอนุมัติ นี่คือกลไกความปลอดภัยหลัก มี 3 ระดับ (กด Shift+Tab เพื่อสลับ):

โหมดพฤติกรรมเหมาะกับ
ปกติ (default)ขออนุมัติทุกการแก้ไฟล์/รันคำสั่งมือใหม่ และงานสำคัญ
Accept editsแก้ไฟล์ได้เลย แต่รันคำสั่งยังต้องของานที่ไว้ใจแล้ว อยากให้ลื่น
Plan modeอ่านได้อย่างเดียว ห้ามแก้อะไรเลย — ให้เสนอแผนก่อนงานใหญ่ที่อยากดูแผนก่อนลงมือ

กฎเหล็กสำหรับมือใหม่: อ่านก่อนอนุมัติเสมอ โดยเฉพาะคำสั่ง terminal — ถ้าไม่เข้าใจว่าคำสั่งนั้นทำอะไร ให้ถามมันตรง ๆ ว่า “คำสั่งนี้ทำอะไร อันตรายไหม” ก่อนกด

Case Study: แก้บั๊กจริงตั้งแต่ต้นจนจบ

สถานการณ์: เว็บร้านค้า กดปุ่ม “เพิ่มลงตะกร้า” แล้วจำนวนสินค้าไม่อัปเดต

🧑 เรา

มีบั๊ก: กดปุ่ม "เพิ่มลงตะกร้า" แล้วตัวเลขบนไอคอนตะกร้าไม่เปลี่ยน ต้องรีเฟรชหน้าก่อนถึงจะเห็น ช่วยหาสาเหตุหน่อย ยังไม่ต้องแก้

✳️ Claude

เจอสาเหตุแล้วครับ ใน cart.js บรรทัด 42 — ฟังก์ชัน addToCart() บันทึกข้อมูลลง localStorage ถูกต้อง แต่ไม่ได้เรียก updateCartBadge() เพื่ออัปเดตตัวเลขบนหน้าจอ ตัวเลขเลยค้างจนกว่าจะโหลดหน้าใหม่ วิธีแก้คือเพิ่มการเรียก updateCartBadge() หลังบันทึกเสร็จ — ให้ผมแก้เลยไหมครับ?

🧑 เรา

แก้เลย แล้วช่วยเช็คด้วยว่ามีจุดอื่นที่ลืมเรียก updateCartBadge() แบบเดียวกันอีกไหม

✳️ Claude

แก้ cart.js แล้วครับ (คุณกดอนุมัติการแก้ไข) และเจออีก 1 จุดที่เป็นบั๊กแบบเดียวกัน: ฟังก์ชัน removeFromCart() ก็ไม่ได้เรียกเหมือนกัน — แก้ให้ด้วยแล้ว ทดสอบด้วยการรัน npm run dev แล้วลองกดเพิ่ม/ลบสินค้า ตัวเลขอัปเดตทันทีทั้งสองทางครับ

จุดที่อยากให้สังเกต 3 อย่าง: (1) เราให้หาสาเหตุก่อนแก้ (2) เราขอให้เช็คบั๊กแบบเดียวกันที่อื่น — AI เก่งงานนี้มาก (3) มันทดสอบหลังแก้ให้ด้วย ถ้ามันไม่ทำเอง สั่งเพิ่มได้เสมอว่า “ทดสอบด้วย”

คำสั่งที่ใช้บ่อยในชีวิตจริง

คำสั่งใช้ทำอะไร
claudeเริ่ม session ใหม่
claude -cคุยต่อจาก session ล่าสุดในโฟลเดอร์นี้
claude "สรุปโปรเจกต์นี้"สั่งงานเดียวจบ
/clearล้างบริบท เริ่มเรื่องใหม่ (เหมือนเปิดแชทใหม่ — เทคนิคบทที่ 18 ใช้ได้ที่นี่ด้วย)
/resumeเลือกกลับไปคุยต่อ session เก่า ๆ
Escหยุดสิ่งที่ Claude กำลังทำกลางคัน