Kodokon kodokon.com

ตั้งคำถามที่ได้รับคำตอบ

จัดโครงสร้างคำขอความช่วยเหลือให้ได้คำตอบเร็ว ๆ และรู้จักตัวอย่างขั้นต่ำที่ทำซ้ำปัญหาได้

7 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

การขอความช่วยเหลือไม่ใช่การยอมรับความอ่อนแอ ทุกคนทำกันทุกวัน รวมถึงคนที่มีประสบการณ์มากที่สุดด้วย แต่คำถามที่ตั้งไม่ดีมักไม่ได้รับคำตอบ และไม่ใช่เพราะคนใจร้าย "มันไม่ทำงาน ช่วยหน่อย" ไม่ได้บรรจุข้อมูลที่ใช้งานได้เลยแม้แต่นิดเดียว ไม่มีใครเดาโค้ดของคุณ ระบบของคุณ หรือสิ่งที่คุณลองไปแล้วออกหรอก

คำถามที่ดีมีส่วนประกอบห้าอย่าง สิ่งที่คุณพยายามจะทำให้สำเร็จ ในหนึ่งประโยค สิ่งที่คุณทำไป พร้อมโค้ดที่เกี่ยวข้อง สิ่งที่คุณคาดว่าจะได้ เป็นผลลัพธ์ สิ่งที่เกิดขึ้นจริง พร้อมข้อความแสดงข้อผิดพลาดที่คัดลอกมาแบบเป๊ะ ๆ และ สิ่งที่คุณลองไปแล้ว เพื่อไม่ให้ใครยื่นทางเดิมให้คุณสามรอบ เพิ่มสภาพแวดล้อมของคุณเข้าไปด้วย: ระบบ ภาษา และเวอร์ชัน

TEXT
เป้าหมาย: แสดงรายการบทความบนหน้าเว็บของฉัน
บริบท: Python 3.12 บน Windows 11
โค้ด: (ส่วนเล็ก ๆ ที่ก่อปัญหา)
คาดว่าจะได้: หัวข้อทั้ง 3 แสดงขึ้นมา
ได้จริง: TypeError: 'NoneType' object is not iterable
ลองไปแล้ว: ตรวจชื่อไฟล์ เพิ่ม print
แม่แบบคำถามที่คัดลอกไปใช้ได้: หกบรรทัดก็พอแล้ว

เครื่องมือที่ดีที่สุดสำหรับการขอความช่วยเหลือเรียกว่า ตัวอย่างขั้นต่ำที่ทำซ้ำปัญหาได้ (minimal reproducible example) แนวคิดคือ ตัดโค้ดของคุณลงจนเหลือชิ้นเล็กที่สุดที่ยังทำให้ปัญหาเกิดซ้ำได้ คุณเอาทุกอย่างที่ไม่เกี่ยวข้องออกไปทีละบรรทัด จนเหลือแต่แก่นสำคัญ ความพยายามนี้มีผลข้างเคียงที่น่าประหลาดใจ: บ่อยครั้งมาก คุณจะเจอต้นเหตุด้วยตัวเองระหว่างทาง ก่อนจะได้ถามเสียอีก

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

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. ทำไมคำถามอย่าง "มันไม่ทำงาน ช่วยหน่อย" ถึงไม่ได้รับคำตอบ?
    • เพราะมันถูกมองว่าเป็นกันเองเกินไป
    • เพราะมันไม่บรรจุข้อมูลที่ใช้งานได้เลย
    • เพราะคุณต้องจ่ายเงินเสมอถึงจะได้คำตอบ
  2. ทำไมต้องวางโค้ดเป็นข้อความแทนที่จะเป็นภาพหน้าจอ?
    • เพื่อให้คัดลอก ทดสอบ และค้นหาในนั้นได้
    • เพราะรูปภาพถูกห้ามบนฟอรัม
    • เพราะข้อความแสดงผลได้เร็วกว่า
  3. ตัวอย่างขั้นต่ำที่ทำซ้ำปัญหาได้คืออะไร?
    • ทั้งโปรเจกต์ที่บีบอัดรวมเป็นไฟล์เดียว
    • โค้ดชิ้นเล็กที่สุดที่ยังทำให้ปัญหาเกิดซ้ำได้
    • คำอธิบายปัญหาที่ไม่มีโค้ดเลย
    • ภาพหน้าจอของข้อผิดพลาดฉบับเต็ม