~/VibeHandbook
PDF ฟรี

บท 08 · 03

ทำงานเป็นขั้นตอนเล็ก ๆ

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

ขั้นตอนเล็ก ๆ ช่วยให้คุณควบคุมสถานการณ์ได้:

  • ส่งมอบทีละหนึ่งฟังก์ชัน หนึ่งคอมโพเนนต์ หรือหนึ่ง ต่อหนึ่งพรอมต์
  • ตรวจสอบว่าแต่ละชิ้นทำงานได้ก่อนไปต่อ
  • ต่อยอดจากโค้ดที่ยืนยันแล้วว่าใช้งานได้ ไม่ใช่กองโค้ดที่ยังไม่ได้ตรวจสอบ
Build the whole authentication system with login, signup,
password reset, sessions, and email verification.
Step 1 of the auth flow: write just the signup endpoint.
POST /signup taking { email, password }. Hash the password
with bcrypt, store the user, return 201 with the user id.
Assume the User model and db client already exist (I'll show
you their shapes). We'll handle login next.

พรอมต์ที่เล็กลงหมายถึง diff ที่เล็กลง และ diff ที่เล็กลงหมายถึงคุณอ่านสิ่งที่เปลี่ยนแปลงจริง ๆ ได้ นั่นคือหัวใจทั้งหมดของเกมนี้ ยังมีผลตอบแทนอีกอย่างหนึ่งด้วย: เมื่อมีอะไรพัง ขั้นตอนเล็ก ๆ ทำให้หาสาเหตุ (bisect) ได้ง่ายมาก ถ้าคุณสร้างและตรวจสอบ endpoint สมัครสมาชิกแล้ว ตามด้วยตรรกะเซสชัน แล้วตามด้วยการรีเซ็ตรหัสผ่าน บั๊กที่ปรากฏหลังขั้นตอนที่สามแทบจะแน่นอนว่าอยู่ในขั้นตอนที่สาม การสร้างโค้ดทีเดียวใหญ่ ๆ ทำลายสัญญาณนี้ทิ้งไป — บั๊กอาจอยู่ตรงไหนก็ได้ในโค้ดสี่ร้อยบรรทัดที่คุณไม่เคยอ่าน

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี