การตรวจสอบชนิดข้อมูลและ linting: จับความผิดพลาดได้ฟรี
มีเครื่องมือสองตัวที่จับความผิดพลาดทั้งหมวดหมู่ได้โดยแทบไม่ต้องออกแรงเลย:
- การตรวจสอบชนิดข้อมูล (type checking) (TypeScript,
mypyฯลฯ) จับกรณี "คุณส่งสตริงเข้าไปในที่ที่ควรเป็นตัวเลข" และ "ค่านี้อาจเป็น undefined ได้" AI ชอบลืมกรณีขอบเขต ( case) ที่ชนิดข้อมูลทำให้เป็นไปไม่ได้อยู่แล้ว - Linting (ESLint, Ruff ฯลฯ) จับตัวแปรที่ไม่ได้ใช้ โค้ดที่ไปไม่ถึง (unreachable code) และความเบี่ยงเบนของสไตล์ มันช่วยไม่ให้โค้ดเบสที่ AI แตะต้องค่อย ๆ กลายเป็นโจ๊ก
ตั้งค่าเครื่องมือเหล่านี้ตั้งแต่เนิ่น ๆ และบอก AI ให้ปฏิบัติตาม: "รันตัวตรวจสอบชนิดข้อมูลและ linter แล้วแก้ทุกอย่างที่มันรายงาน ก่อนที่จะบอกว่าเสร็จ" ให้ถือว่าการตรวจสอบชนิดข้อมูลที่สะอาดเป็นส่วนหนึ่งของนิยามคำว่า "เสร็จแล้ว"
แต่ให้ระวังทางลัดขี้เกียจ เมื่อตัวตรวจสอบชนิดข้อมูลบ่น วิธีแก้ที่ถูกต้องจริง ๆ คือจัดการกับกรณีที่มันเจอ — ค่า undefined ชนิดข้อมูลที่ผิด ส่วนวิธีแก้ แบบเร็ว คือปิดปากคำบ่นด้วย // @ts-ignore, any, หรือคอมเมนต์ # type: ignore และ AI มักจะหยิบวิธีนี้มาใช้บ่อยมาก เพราะมันทำให้ข้อความสีแดงหายไป มันยังทำให้การตรวจสอบนั้นไร้ประโยชน์อย่างตรงจุดที่มันควรจะช่วยพอดี ถ้าคุณเห็นคอมเมนต์ปิดการเตือนโผล่ขึ้นมาใน diff ให้ถือว่ามันเป็นคำถาม ไม่ใช่คำตอบ: "ทำไมถึงต้องมีสิ่งนี้ ให้แก้ที่ชนิดข้อมูลจริง ๆ แทนที่จะเมินเฉยมัน"