API docs บอกวิธีใช้ API แตตอนผิดพลาด คุณอาจโดนทิ้งไว้ Error messages มักไม่ครบ mislead หรือไม่ช่วยเหลือ และ NoMethodError: undefined method '[]' for nil:NilClass จะทำยังไง?
ตอนเรียน API framework library ไม่ได้แค่เรียนใช้ตอนทำงานดี ต้องรู้จัดการตอนมันคืน error กลับมา
ทำไมถึงทำลายโค้ด?
มีวิธีง่ายเรียนรู้จัดการตอน API ที่ใช้แตก: แตกมันเอง!
เช่น ผมจะ:
ส่งข้อมูลชนิดผิด ส่ง symbol แทน String, String แทน Array, Hash แทน Array ฯลฯ
ส่งข้อมูลไม่ครบ ส่ง
nil, hashes ข้าม fields, objects เพิ่ง initializeถ้า API ต้องการ network ตัด WiFi หรือถอดสาย LAN มันแค่ timeout หรือบอกว่าไม่ถึง service ไหน?
ถ้า API รับ block โยน exceptions ใน block หรือคืนข้อมูลชนิดผิด
API ดีจะบอกว่าทำผิดอะไร API ยอดเยี่ยมบอกวิธีแก้ แตส่วนใหญ่เจอ Ruby NoMethodError, nil ผิดหวัง หรือค่าคืนแปลกๆ
ทำไมต้องแตกโค้ด?
ไม่ได้แย่ทั้งหมด ถ้าเล่น open-source gem สามารถเข้าใจ ที่มา ของพฤติกรรมผิดปกติ และ ทำไม มันเกิด debug อ่านโค้ดนิดหน่อย เรียนรู้เยอะเกี่ยว library/API
เจอที่มา NoMethodError แล้ว ไปต่อได้ คุณสามารถแก้ error message ให้คนต่อไปที่เจอปัญหาจริง! การแก้ error messages เล็กๆ ทำ open-source contributions และ pull requests ง่ายๆ ทำให้ Ruby ecosystem ดีขึ้นสำหรับทุกคน
ถึง closed-source REST API ก็ได้ประโยชน์ หลังเห็น errors ต่างๆ จาก API แล้ว จะแก้ปัญหาง่ายขึ้นตอนเจอ error จริง
คุยกับ errors และ fixing code รอบๆ คุณจะมองโค้ดเสียเป็นปริศนาที่แก้ได้ ไม่ถอยหลังตอนเห็น exception และ backtrace แทนจะมองเป็นโอกาสเรียนรู้ระบบ
สุดท้าย รู้ว่าโค้ดแตก คุณประกอบกลับได้ ความมั่นใจลอง libraries/APIs ใหม่เพิ่มขึ้น ความกล้าเพิ่ม อัตรา การเรียนรู้สิ่งใหม่