โหมดติวตอบกรรมการ

แสดงทีละหัวข้อจาก /docs/CODE_STUDY_GUIDE.md

ความคืบหน้า 15 / 62 (24%)
หัวข้อที่ 15 จากทั้งหมด 62

5.3 Error Handling — 3 ชั้น

สรุปสั้น: 1. asyncHandler(fn) — ครอบ async function ถ้า throw error จะ catch(next) อัตโนมัติ 2. errorConverter — แปลง Error ธรรมดาเป็น ApiError 3. errorHandler — ส่ง JSON error response (production จะซ่อน stack trace) วิธีใช้ในทุก controlle...

คำสำคัญ

  • error
  • handling
  • asynchandler
  • ครอบ
  • async
  • function

คำถามที่กรรมการมักถาม

  1. หัวข้อ "5.3 Error Handling — 3 ชั้น" คืออะไร และทำไมถึงสำคัญกับโปรเจกต์ของคุณ?
  2. ตอนออกแบบเรื่อง handling คุณเทียบทางเลือกอะไรบ้าง และเหตุผลที่เลือกวิธีสุดท้ายคืออะไร?
  3. ถ้ากรรมการท้วงเรื่อง asynchandler คุณจะอธิบายและป้องกันแนวทางนี้อย่างไร?
  4. ถ้าต้องปรับปรุง error ให้ดีขึ้นทันที คุณจะเริ่มแก้อะไรก่อน เพราะอะไร?

ตัวอย่างคำตอบ

สำหรับหัวข้อ "5.3 Error Handling — 3 ชั้น" เป้าหมายหลักคือ 1. asyncHandler(fn) — ครอบ async function ถ้า throw error จะ catch(next) อัตโนมัติ 2. errorConverter — แปลง Error ธรรมดาเป็น ApiError 3. errorHandler — ส่ง JSON error response (production จะซ่อน stack trace) วิธีใช้ในทุก controlle... แนวทางที่ใช้เชื่อมโยงกับความต้องการระบบ ช่วยให้ระบบเชื่อถือได้และดูแลง่ายขึ้น และเมื่อเทียบกับทางเลือกอื่นถือว่าเหมาะสมที่สุดภายใต้ข้อจำกัดของโปรเจกต์นี้

คำนวณยังไง

  • เปอร์เซ็นความคืบหน้า: Math.round((index / total) * 100) = Math.round((15 / 62) * 100) = 24%
  • ลำดับหัวข้อปัจจุบัน: รับจาก query ?section= แล้วบังคับให้อยู่ในช่วง 1..62 ค่าที่รับมา: 15, ค่าสุดท้าย: 15
  • จำนวนหัวข้อทั้งหมด: 62 (นับจากหัวข้อ markdown ระดับ ## และ ###)
  • สรุปสั้น: สร้างจาก summarizeText(stripMarkdown(sectionContent), 230)
  • คำสำคัญ: ดึงจากความถี่คำในชื่อหัวข้อ + เนื้อหา หลังกรองคำฟุ่มเฟือย (stopwords)
  • คำถามกรรมการ: สร้างจาก template โดยอิงชื่อหัวข้อและคำสำคัญหลัก