RayClaude Cowork Course · SE TRACK

SE บทที่ 8 — เมื่อของพัง จะแก้ยังไง · วินิจฉัยก่อนจ่ายยา

ใช้ปุ่ม ← → เปลี่ยนสไลด์ได้

SE TRACK — MODULE 8 · DEBUGGING

เมื่อของพัง จะแก้ยังไง — ไม่ให้ AI แก้มั่ว

วันหนึ่งหน้าสั่งซื้อของร้านเราค้าง แล้ว AI บอกว่า "I can't reproduce the issue, but here's a quick fix that might work" — ถ้าอ่านไม่ออก เราจะพิมพ์ "โอเค" แล้วปล่อยให้มันเดาสุ่มแก้โค้ดระบบจริง บทนี้สอนให้อ่านประโยคแบบนี้ออก และสั่งกลับให้ AI วินิจฉัยก่อนจ่ายยา เหมือนหมอที่ดี

ความจริงที่ทำให้สบายใจ: ของพังไม่น่ากลัวเท่าแก้มั่ว — ซอฟต์แวร์ทุกตัวในโลกมีบั๊ก ต่างกันแค่ทีมไหน "หาสาเหตุก่อนแก้" กับทีมไหน "เดาแล้วแก้ไปเรื่อย ๆ"

ทำไมต้องรู้ · Analogy ประจำบท

หมอที่ดีไม่จ่ายยาตามอาการ — แต่หาสาเหตุก่อน

01ไข้ ≠ การติดเชื้อ

  • ไข้คืออาการ (Symptom) ที่เห็น · การติดเชื้อคือสาเหตุ (Root Cause) ที่ซ่อนอยู่
  • กินยาลดไข้อย่างเดียว ไข้กลับมาแน่ — โค้ดก็เหมือนกัน

02ทำให้ป่วยซ้ำได้ในห้องตรวจ

  • หมอต้องเห็นอาการเกิดต่อหน้า ถึงจะตรวจถูกจุด — นี่คือ Reproduce
  • บั๊กที่ทำให้เกิดซ้ำได้ = บั๊กที่แก้ได้เกือบแน่นอน

03เราคือคนไข้ที่เล่าอาการเก่ง

  • งานของเราไม่ใช่ผ่าตัดเอง — คือเล่าอาการให้ครบ: ทำอะไรอยู่ เกิดอะไร เห็นข้อความอะไร
  • Debugging = กระบวนการหาสาเหตุแล้วแก้ — AI ทำได้ ถ้าเราให้ข้อมูลดี

MENTAL MODEL ประจำบท

"วินิจฉัยก่อนจ่ายยา — ไข้คืออาการ การติดเชื้อคือสาเหตุ" · อย่าให้ AI แก้ จนกว่ามันจะบอกได้ว่าสาเหตุคืออะไร

ศัพท์ชุดวินิจฉัย · 6 คำ

เครื่องมือในห้องตรวจของหมอ

SYMPTOMอาการที่เห็น

  • สิ่งที่สังเกตได้ เช่น หน้าเว็บค้าง ยอดสต๊อกไม่ตรง
  • AI: "the symptom is the page freezing"

ROOT CAUSEสาเหตุที่แท้จริง

  • ต้นตอที่ทำให้อาการเกิด — แก้ตรงนี้ อาการถึงหายจริง
  • AI: "the root cause is…"

REPRODUCEทำให้ป่วยซ้ำได้

  • ทำให้บั๊กเกิดซ้ำอย่างสม่ำเสมอ · Reproduction Steps = ขั้นตอนกดตามแล้วพังทุกครั้ง
  • AI: "can you share the steps to reproduce?"

STACK TRACEลายแทงจุดที่ล้ม

  • ข้อความยาว ๆ ที่โผล่ตอน error — บอกลำดับการทำงานที่นำไปสู่จุดพัง
  • เจอเมื่อไหร่ copy ส่งให้ AI ทั้งก้อน อย่าสรุปเอง

LOGสมุดบันทึกเหตุการณ์

  • ข้อมูลที่โปรแกรมจดไว้ระหว่างทำงาน — หลักฐานชั้นดีเวลาวินิจฉัย
  • AI: "let me check the logs"

HYPOTHESISสมมติฐาน

  • คำตอบชั่วคราวที่ยังต้องพิสูจน์ — หมอเก่งตั้งหลายข้อแล้วตัดทีละข้อ
  • AI: "my hypothesis is the discount code logic"

ตัวอย่างจริง: ลูกค้า LINE OA ทักว่า "กดสั่งซื้อแล้วเด้ง" — อาการ (Symptom) คือเด้ง · Reproduction steps คือ "เพิ่มของ 2 ชิ้น + ใส่โค้ดส่วนลด แล้วกดชำระเงิน" · สาเหตุจริง (Root Cause) อาจเป็นโค้ดส่วนลดที่หมดอายุแล้วระบบไม่ได้กันไว้

คู่สำคัญ + วิธีสั่งให้วินิจฉัย

ยาแก้ปวดชั่วคราว vs รักษาต้นเหตุ

WORKAROUND · ยาแก้ปวดเลี่ยงปัญหาชั่วคราว

  • ทำให้ระบบใช้ต่อได้ทันที แต่ต้นเหตุยังอยู่ เช่น ปิดโค้ดส่วนลดไปก่อน ร้านขายต่อได้
  • รับได้ในวันที่ลูกค้ารอ — แต่ต้องจดไว้เสมอว่ายังไม่ได้แก้จริง

FIX · รักษาต้นเหตุแก้ที่ Root Cause

  • แก้ต้นตอให้อาการไม่กลับมาอีก แล้วปิดท้ายด้วยตัวตรวจอัตโนมัติ (บท SE6) กัน Regression — ของที่เคยดีกลับพังซ้ำหลังแก้อย่างอื่น
  • เหตุการณ์ใหญ่จบแล้ว ให้ AI เขียน Postmortem = บันทึกสรุปว่าเกิดอะไร เพราะอะไร กันซ้ำยังไง
# Prompt ทองประจำบท — สั่ง AI วินิจฉัยก่อนจ่ายยา (ย่อจาก template เต็ม)
วิเคราะห์ปัญหานี้ โดยยังไม่แก้โค้ด
- Expected: กดชำระเงินแล้วได้ใบยืนยันคำสั่งซื้อ
- Actual: หน้าค้าง ไม่มีใบยืนยัน
- Reproduction steps + error message + stack trace: (แปะทั้งก้อน)
สิ่งที่ต้องการ: แยก symptom ออกจาก root cause → จัดอันดับ hypotheses → เสนอ minimal fix + regression test

ใช้คู่กันได้: workaround ให้ร้านไปต่อวันนี้ + fix ต้นเหตุภายในสัปดาห์ — แค่ต้องรู้ว่าอันไหนเป็นอันไหน

⭐ หัวใจของบท

ตารางแปลภาษา AI — ได้ยินแบบนี้ ต้องทำยังไง

AI พูดว่ากำลังจะเกิดอะไรเราควรทำอะไร
"I can't reproduce the issue"มันทำให้บั๊กเกิดซ้ำในห้องตรวจไม่ได้ — ข้อมูลอาการยังไม่พอ🟡 ไม่ใช่ทางตัน — ส่ง reproduction steps ละเอียดขึ้น + ภาพหน้าจอ + ข้อความ error
"let me check the logs and stack trace first"กำลังเก็บหลักฐานก่อนวินิจฉัย — ยังไม่แตะโค้ด✅ ทิศทางถูก — นี่คือหมอที่ตรวจก่อนจ่ายยา ปล่อยให้ทำ
"my hypothesis is the discount logic"มีสมมติฐานแล้ว แต่ยังไม่ได้พิสูจน์✅ ปกติ — ให้มันหาหลักฐานยืนยันก่อน แล้วค่อยอนุมัติให้แก้
"the root cause is…"วินิจฉัยเจอสาเหตุแล้ว กำลังจะเสนอวิธีแก้✅ อ่านคำอธิบาย — ถ้าฟังขึ้น (ตรงกับอาการที่เราเห็นจริง) ค่อยให้ลงมือแก้
"here's a temporary workaround"ยาแก้ปวดชั่วคราว — ระบบไปต่อได้ แต่ต้นเหตุยังอยู่🟡 รับได้ — แต่จดไว้ว่ายังไม่ได้แก้จริง แล้วนัดกลับมาแก้ root cause
"I fixed it" (โดยไม่บอกสาเหตุ)อาจแก้ตามอาการ — ไข้ลดแต่เชื้อยังอยู่⚠️ ถามกลับก่อน: "root cause คืออะไร แล้วทดสอบยังไงว่าหายจริง"
"I'll add a regression test so it never breaks again"เพิ่มตัวตรวจอัตโนมัติ (บท SE6) กันอาการเดิมกลับมา✅ ดีที่สุด — นี่คือการปิดเคสแบบมืออาชีพ กันพังซ้ำ

สูตรจำเร็ว: ประโยคที่มี logs / hypothesis / root cause / regression test = หมอกำลังตรวจ ✅ · ประโยคที่ เสนอแก้ทันทีโดยไม่บอกสาเหตุ = จ่ายยาไม่ตรวจ ยกมือถามก่อน

กันหลงทาง

5 คู่ที่จำสลับกันบ่อยที่สุด

คู่ศัพท์ต่างกันตรงไหน
Symptom vs Root CauseSymptom = อาการที่เห็น (ไข้ · หน้าเว็บค้าง) · Root Cause = ต้นตอที่ซ่อนอยู่ (การติดเชื้อ · โค้ดส่วนลดไม่กันวันหมดอายุ) — แก้แต่อาการ เดี๋ยวกลับมา
Workaround vs FixWorkaround = ยาแก้ปวดชั่วคราว ต้นเหตุยังอยู่ · Fix = รักษาที่ต้นเหตุจริง — ใช้คู่กันได้ แต่ห้ามนับ workaround ว่า "แก้เสร็จแล้ว"
Log vs Stack TraceLog = สมุดบันทึกเหตุการณ์ที่จดตลอดทั้งวัน · Stack Trace = ลายแทงเฉพาะตอนล้ม บอกลำดับที่นำไปสู่ error หนึ่งครั้ง
Bug ใหม่ vs RegressionBug ใหม่ = ของที่ไม่เคยทำงานถูก · Regression = ของที่เคยดีอยู่แล้วกลับพังหลังมีการแก้อย่างอื่น — เจ็บกว่าเพราะลูกค้าเคยใช้ได้
Testing vs DebuggingTesting (บท SE6) = ชิมก่อนเสิร์ฟ กันของพังตั้งแต่ยังไม่ถึงลูกค้า · Debugging = งานหลังพังแล้ว หาสาเหตุแล้วแก้ — ยิ่ง testing ดี งาน debugging ยิ่งน้อย

สังเกต: ทุกคู่ฝั่งซ้ายคือ "สิ่งที่เห็นเร็ว" ฝั่งขวาคือ "ของจริงที่ต้องตามให้เจอ" — นิสัยของบทนี้คืออย่าหยุดที่ของที่เห็นเร็ว

QUICK-CHECK · กดดูเฉลย

จริงหรือไม่? — เช็คก่อนปิดคอร์ส

1 · "AI บอก reproduce ไม่ได้ = แก้ไม่ได้แล้ว จบกัน"

ไม่จริง — แปลว่าข้อมูลอาการยังไม่พอ หน้าที่เราคือส่ง reproduction steps ที่ละเอียดขึ้น ภาพหน้าจอ และข้อความ error — บั๊กที่ทำให้เกิดซ้ำได้ คือบั๊กที่แก้ได้

2 · "AI ให้ workaround มาแล้ว ถือว่าปิดงานได้เลย"

ไม่จริง — workaround คือยาแก้ปวด ต้นเหตุยังอยู่ ต้องจดไว้แล้วนัดกลับมาแก้ root cause ไม่งั้นอาการเดิมจะกลับมาตอนที่เราลืมไปแล้วว่าเคยเลี่ยงอะไรไว้

3 · "แก้บั๊กเสร็จ ควรให้ AI เพิ่ม regression test ปิดท้าย"

จริง — ตัวตรวจอัตโนมัติ (บท SE6) จะจับอาการเดิมให้ทันทีถ้ามันกลับมา — วิธีปิดเคสที่กันพังซ้ำได้จริง

KEY TAKEAWAY

Symptom = อาการ · Root Cause = ต้นเหตุ · Reproduce = ทำให้ป่วยซ้ำในห้องตรวจ · Workaround = ยาแก้ปวด · Fix + Regression test = รักษาจริงและกันซ้ำ
กฎเหล็กประจำบท: "อย่าให้ AI จ่ายยาก่อนวินิจฉัย — ถาม Root Cause ทุกครั้ง ก่อนอนุมัติให้แก้"

🎓 จบ SE Track ครบ 9 บท: SE0 แผนที่วงจรงานSE1 RequirementSE2 DesignSE3 ศัพท์พื้นฐานSE4 คุม AI CodingSE5 Git & GitHubSE6 TestingSE7 DeliverySE8 Debugging — บทไหนยังไม่ได้เรียน กดกลับไปเก็บได้เลย

1 / 7