⚡ ระดับสูง · บทที่ 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: แก้บั๊กจริงตั้งแต่ต้นจนจบ
สถานการณ์: เว็บร้านค้า กดปุ่ม “เพิ่มลงตะกร้า” แล้วจำนวนสินค้าไม่อัปเดต
มีบั๊ก: กดปุ่ม "เพิ่มลงตะกร้า" แล้วตัวเลขบนไอคอนตะกร้าไม่เปลี่ยน ต้องรีเฟรชหน้าก่อนถึงจะเห็น ช่วยหาสาเหตุหน่อย ยังไม่ต้องแก้
เจอสาเหตุแล้วครับ ใน cart.js บรรทัด 42 — ฟังก์ชัน addToCart() บันทึกข้อมูลลง localStorage ถูกต้อง แต่ไม่ได้เรียก updateCartBadge() เพื่ออัปเดตตัวเลขบนหน้าจอ ตัวเลขเลยค้างจนกว่าจะโหลดหน้าใหม่ วิธีแก้คือเพิ่มการเรียก updateCartBadge() หลังบันทึกเสร็จ — ให้ผมแก้เลยไหมครับ?
แก้เลย แล้วช่วยเช็คด้วยว่ามีจุดอื่นที่ลืมเรียก updateCartBadge() แบบเดียวกันอีกไหม
แก้ cart.js แล้วครับ (คุณกดอนุมัติการแก้ไข) และเจออีก 1 จุดที่เป็นบั๊กแบบเดียวกัน: ฟังก์ชัน removeFromCart() ก็ไม่ได้เรียกเหมือนกัน — แก้ให้ด้วยแล้ว ทดสอบด้วยการรัน npm run dev แล้วลองกดเพิ่ม/ลบสินค้า ตัวเลขอัปเดตทันทีทั้งสองทางครับ
จุดที่อยากให้สังเกต 3 อย่าง: (1) เราให้หาสาเหตุก่อนแก้ (2) เราขอให้เช็คบั๊กแบบเดียวกันที่อื่น — AI เก่งงานนี้มาก (3) มันทดสอบหลังแก้ให้ด้วย ถ้ามันไม่ทำเอง สั่งเพิ่มได้เสมอว่า “ทดสอบด้วย”
คำสั่งที่ใช้บ่อยในชีวิตจริง
| คำสั่ง | ใช้ทำอะไร |
|---|---|
claude | เริ่ม session ใหม่ |
claude -c | คุยต่อจาก session ล่าสุดในโฟลเดอร์นี้ |
claude "สรุปโปรเจกต์นี้" | สั่งงานเดียวจบ |
/clear | ล้างบริบท เริ่มเรื่องใหม่ (เหมือนเปิดแชทใหม่ — เทคนิคบทที่ 18 ใช้ได้ที่นี่ด้วย) |
/resume | เลือกกลับไปคุยต่อ session เก่า ๆ |
Esc | หยุดสิ่งที่ Claude กำลังทำกลางคัน |