ก่อนปิดบท
แผลเป็นจากงานจริง
ทุกข้อคือสิ่งที่ AI เพิ่งพูดหรือเพิ่งทำบนร้านคอร์ส ว่าแก้แล้ว เปลี่ยนแล้ว หรือเสร็จแล้ว
ข้อ 1 / 10
คุณสั่ง AI ให้หน้าคืนเงินของแอดมินรู้จักออเดอร์ที่จ่ายครึ่งเดียว มันเขียนเงื่อนไข “จ่ายแล้ว” ใหม่ในหน้านั้น ทั้งที่หน้าชำระเงินกับหน้าคอร์สของฉันก็มีของตัวเองอยู่แล้ว ทางไหนถูก?
1 · One fact, one definition ความจริงที่คำนวณได้ควรมีชื่อเดียว ตัวที่สองคือบั๊ก แม้วันนี้ผลจะตรงกัน เพราะกฎใหม่ข้อถัดไปจะเข้าแค่บางที่ แล้วหน้าเก่าจะพังเงียบ ๆ ดูบนกระดาน 1 · One fact, one definition →
ข้อ 2 / 10
AI รายงานว่า “เปลี่ยนไปส่งผ่าน LINE notify แล้ว ตัวส่งอีเมลเก่าเก็บไว้เผื่อใช้” คุณขออะไรก่อนรับ?
2 · Replace means the old is gone ของใหม่ที่วางข้างของเก่าทำให้คนเรียกแยกกันไปคนละทาง บางหน้าส่งอีเมล บางหน้าส่ง LINE การแทนที่จบเมื่อทางเก่าไม่มีใครเรียกได้ และการค้นครั้งเดียวพิสูจน์ได้ ดูบนกระดาน 2 · Replace means the old is gone →
ข้อ 3 / 10
staging ตอบ 403 คุณพิมพ์ว่า “ทำไมถึงเป็นแบบนี้ คัดแยกก่อนนะ” AI ตอบกลับมาพร้อม diff สามไฟล์ และปิด flag ที่คุณเพิ่งเปิดไว้ อะไรผิด?
3 · A why gets an answer, not a diff คำถามได้คำตอบที่เช็กได้หนึ่งข้อพร้อมหลักฐาน การแก้ตามทฤษฎีแรกทำให้คุณเสียทั้งคำตอบและของที่ตั้งใจเปิดไว้ ดูบนกระดาน 3 · A why gets an answer, not a diff →
ข้อ 4 / 10
ช่องราคาเป็น `amount: string` คอมเมนต์บอกว่าเป็นบาท ราคาคอร์ส 900 บาทขึ้นหน้าจอเป็น 9 บาท ทางไหนกันไม่ให้กลับมาอีก?
4 · The money unit lives in the type คอมเมนต์กับชื่อช่องไม่มีใครเช็ก compiler เช็กแค่ type หน่วยที่อยู่ใน type ส่งผิดเมื่อไรก็แดงเมื่อนั้น ดูบนกระดาน 4 · The money unit lives in the type →
ข้อ 5 / 10
AI ค้นเจอเลข 100 ฝังอยู่ห้าไฟล์ที่แปลงสตางค์เป็นบาท แล้วเสนอว่าจะแก้ไฟล์ที่ผิดไฟล์เดียว คุณตอบว่าอะไร?
4 · The money unit lives in the type ห้าที่ที่คูณหรือหารเอง คือห้าที่ที่จะผิดไม่พร้อมกัน วันหนึ่งหน้าจอโชว์ 0.9 บาท อีกวัน 90,000 บาท แปลงที่เดียว ที่อื่นรับของที่แปลงแล้ว ดูบนกระดาน 4 · The money unit lives in the type →
ข้อ 6 / 10
ยอดคงเหลือขึ้นศูนย์ AI ตอบทันทีว่า “น่าจะเป็นเพราะ cache” แล้วเริ่มแก้ ยังไม่ได้แนบอะไร คุณขออะไร?
5 · A receipt before the cause สาเหตุจากความเคยชินพาไปแก้ ถอน โทษ config แล้วยิงทดสอบหว่าน ไม่มีหลักฐาน ไม่เอ่ยชื่อสาเหตุ และที่แรกที่ต้องดูคือของที่ตัวเองเพิ่งแก้ ดูบนกระดาน 5 · A receipt before the cause →
ข้อ 7 / 10
เจ้าระบบตัดเงินตอบมาผิดรูป โค้ดมี catch ที่คืน `{ balance: 0 }` หน้าจอไม่พังสักหน้า ทำไมนี่แย่กว่าหน้าจอพัง?
6 · A catch that returns fake data หน้าจอที่พังบอกคุณว่ามีปัญหา ค่าที่ดูปลอดภัยโกหกคุณ catch ต้อง throw หรือ log แล้วบอกว่าโหลดไม่ได้ ห้ามคืนค่าที่หน้าตาเหมือนข้อมูล ดูบนกระดาน 6 · A catch that returns fake data →
ข้อ 8 / 10
health check ของร้านเขียวตลอดสองชั่วโมงที่ระบบตัดเงินล่ม มันเช็กอะไรอยู่ และควรเช็กอะไร?
6 · A catch that returns fake data env ที่มีอยู่ไม่ได้แปลว่ากุญแจใช้ได้ หรือปลายทางตอบ health ที่ดีเรียกของที่มันพึ่งจริง ไม่อย่างนั้นมันคือไฟเขียวที่ไม่ได้ต่อสายกับอะไร ดูบนกระดาน 6 · A catch that returns fake data →
ข้อ 9 / 10
ปุ่มจ่ายด้วยบัตรไม่ขึ้นที่หน้าชำระเงิน AI ปล่อยโค้ดแก้ไปสามรอบแล้วยังไม่ขึ้น ก่อนรอบที่สี่ ควรถามอะไร?
7 · Find where the behaviour lives ปุ่มนี้อาจเป็นสวิตช์ในหน้าตั้งค่าของเจ้าระบบ ไม่ใช่โค้ด และ staging คือ deploy อีกตัวที่มีรหัสลับของตัวเอง ไฟล์ในเครื่องบอกไม่ได้ว่าระบบใช้ค่าอะไรจริง ดูบนกระดาน 7 · Find where the behaviour lives →
ข้อ 10 / 10
handoff จากฝั่งหลังบ้านบอกว่า “ช่องวันหมดอายุของคอร์สเสร็จแล้ว” AI เตรียมต่อหน้าจอเข้ากับช่องนั้นเลย ก่อนต่อ ควรมีอะไร?
8 · Done is read from the wire handoff ความจำ และ commit บอกได้แค่ว่ามีคนเขียน ไม่ได้บอกว่าระบบที่รันอยู่ส่งช่องนั้นมาจริง อ่านจากของจริงก่อนต่อ แล้วจบ session ด้วยการจด branch จำนวน commit ที่ยังไม่ขึ้น และ version ที่ deploy ลงไฟล์ ดูบนกระดาน 8 · Done is read from the wire →
คะแนนเก็บในเบราว์เซอร์ของคุณเท่านั้น