Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

เมื่อใช้ API ผิดพลาดอย่างมหันต์

เอกสาร API จะบอกวิธีใช้ API แต่เมื่อเกิดข้อผิดพลาด คุณสามารถปล่อยให้อยู่คนเดียวได้ ข้อความแสดงข้อผิดพลาดมักจะไม่สมบูรณ์ ทำให้เข้าใจผิด หรือไม่มีประโยชน์ และคุณควรจะทำอย่างไรกับ NoMethodError: undefined method '[]' for nil:NilClass ใช่ไหม

เมื่อคุณเรียนรู้ API, เฟรมเวิร์ก หรือไลบรารี คุณไม่สามารถเรียนรู้วิธีใช้เมื่อทุกอย่างเป็นไปด้วยดีได้ คุณต้องคิดด้วยว่าต้องทำอย่างไรเมื่อส่งข้อผิดพลาดกลับคืนมา

คุณถอดรหัสได้อย่างไร

มีวิธีง่ายๆ ในการเรียนรู้ว่าต้องทำอย่างไรเมื่อ API ที่คุณใช้พัก ทำลายมันเอง!

ตัวอย่างเช่น ฉันจะ:

  • ส่งข้อมูลผิดประเภท คุณสามารถส่งสัญลักษณ์แทนสตริง สตริงแทนอาร์เรย์ แฮชแทนอาร์เรย์ สิ่งต่างๆ เช่นนั้นได้

  • ส่งข้อมูลไม่ครบถ้วน คุณสามารถผ่าน nil , แฮชที่ไม่มีการกรอกข้อมูลในฟิลด์ และอ็อบเจ็กต์ที่เพิ่งเริ่มต้น

  • หาก API ต้องการการเข้าถึงเครือข่าย ตัดการเชื่อมต่อจาก WiFi หรือดึงสายเคเบิลเครือข่าย เพิ่งหมดเวลาหรือบอกคุณว่าไม่สามารถเข้าถึงบริการใดได้

  • หาก API อนุญาตให้คุณส่งผ่านในบล็อก โยนข้อยกเว้นภายในบล็อก หรือส่งคืนข้อมูลประเภทที่ไม่ถูกต้อง .

API ที่ยอดเยี่ยมจะบอกคุณว่าคุณทำอะไรผิด API ที่ยอดเยี่ยมจะบอกวิธีแก้ไขให้คุณ แต่บ่อยครั้งที่คุณจะเจอ Ruby NoMethodError , nilโดยไม่คาดคิด s หรือแย่กว่านั้น ได้ค่าส่งคืนที่แปลกประหลาดโดยสิ้นเชิง

ทำไมต้องแตกโค้ด

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

เมื่อคุณค้นพบที่ NoMethodError มาจากคุณสามารถก้าวต่อไปได้ คุณสามารถแก้ไขข้อผิดพลาดเพื่อให้บุคคลต่อไปพบปัญหานี้จริง! การแก้ไขข้อผิดพลาดเล็กๆ น้อยๆ ทำให้เกิดการสนับสนุนโอเพนซอร์สที่ยอดเยี่ยมและคำขอดึงที่ง่ายดาย และทำให้ระบบนิเวศของ Ruby ทั้งหมดดีขึ้นเล็กน้อยสำหรับคนอื่นๆ

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

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

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