11 วิธี พัฒนาทักษะการ Debug ของคุณให้ดีขึ้น

15-ก.พ.-19

คัมภีร์เทพ IT

เชื่อว่า Programmer/Developer ทุกคนคงเคยเขียน Code ผิดพลาดมาก่อน และเมื่อพบ Error คุณอาจรู้สึกเริ่มกังวลและไม่รู้ว่าควรทำอย่างไรดี ดังนั้น ในบทความนี้จึงได้รวบรวมข้อแนะนำเกี่ยวกับ 11 วิธี พัฒนาทักษะการ Debug ของคุณให้ดีขึ้นกว่าเดิม ซึ่งคุณ Nick Karnik ได้สรุปมาให้แล้ว มาดูกันว่ามีเรื่องใดบ้าง

การเรียนรู้จากข้อผิดพลาดที่เคยเจอ และหลีกเลี่ยงไม่ให้เกิดขึ้นซ้ำอีก ถือเป็นสิ่งสำคัญ ดังนั้น คุณต้องพัฒนาและปรับปรุงให้ทักษะ Programming และการ Debug ของคุณให้ดีขึ้น และ Error ที่เกิดขึ้นส่วนใหญ่มักเกี่ยวกับ Logic และ Syntax ในฐานะของ Programmer/Developer ก็ต้องเรียนรู้กันไปในแต่ละภาษา และนี่คือบางส่วนของข้อผิดพลาดที่มักเจอ

1. ข้อผิดพลาดเกี่ยวกับ Log Messages

สถานการณ์ที่เรียกได้ว่า แย่ที่สุด คือ กรณีที่ Program ของคุณมีปัญหาแต่กลับไม่แสดง Error Message เพื่อระบุว่า Error นั้นๆ คืออะไร ขั้นตอนแรกในการระบุว่า Program ของคุณหยุดทำงานตั้งแต่ช่วงเริ่มต้น หรือระหว่าง Runtime คุณสามารถทำได้โดยให้ Print Log Message อย่างง่ายไปยัง Terminal ตั้งแต่ช่วงเริ่มต้นใน Code ของคุณ

หากคุณไม่เห็น Log Message แสดงว่า Program ของคุณ น่าจะมีปัญหาในขณะที่ Load และมันอาจเป็นปัญหาที่เกี่ยวข้องกับ Dependency หรือการ Build

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

2. ข้อผิดพลาดเกี่ยวกับการอ่าน Error Messages

Exception Messages Front-End UI Developer Console MessageBack-End Terminal Log Files และไม่ว่า Error เหล่านั้นจะเกิดขึ้นที่ใด Developer มือใหม่ก็มักจะกลัวและกังวลกับพวกมัน และใช้เวลาในการอ่าน Error เหล่านั้นยังไม่ดีพอ

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

3. ข้อผิดพลาดเกี่ยวกับการอ่าน System Log Files

บาง Program ก็สร้าง Log Files หรือเขียนใน System Event Log ซึ่งมักจะมีข้อมูลที่เป็นประโยชน์ใน Log เหล่านี้ แม้ว่ามันจะไม่ได้บอกคุณอย่างชัดเจนว่า มีอะไรที่ผิดปกติ แต่ก็อาจมี Warning Message หรือ Error Message หรือแม้แต่ Success Message ที่บอกเป็นนัยๆ เกี่ยวกับสิ่งที่เกิดขึ้นก่อนที่ Error จะเกิดขึ้น

4. ข้อผิดพลาดเกี่ยวกับการเขียน Trace Logs

การ Trace คือการติดตาม Flow ของ Program และ Data ของคุณ การเขียน Trace Messages ตลอดทั้ง Program ของคุณช่วยให้กระบวนการ Debug นั้นง่ายขึ้น Trace Logs ถือเป็นวิธีที่ง่ายในการติดตามการ Execution ของ Program ตลอดช่วง Runtime ของ Application ของคุณ

5. ข้อผิดพลาดเกี่ยวกับการเขียน Code เพิ่ม/แก้ไข, Build และ Test

โดยทั่วไป Developer หลายคนเขียน Code เยอะๆ ก่อนแล้วค่อย Build และ Test มันภายหลัง เวลาที่ใช้ในการค้นหา Bug เพิ่มขึ้นตามปริมาณ Code ที่เปลี่ยนไป คุณควรจะเพิ่มหรือแก้ Code ไปทีละน้อย จากนั้นก็ให้ Build และ Test ทันที ถ้า Test ไม่ผ่านก็จะรู้ทันทีว่า Code ส่วนที่เพิ่งเพิ่มเข้าไปหรือแก้ไขนั้นทำให้เกิดปัญหา เวลาจะ Debug ก็สามารถทำได้ง่าย เพราะรู้ว่าเกิดจากส่วนไหน ขณะเดียวกันการ Refactor Code ก็ช่วยให้คุณเขียน Code อย่างมีระบบและเข้าใจมันมากขึ้น

6. ข้อผิดพลาดเกี่ยวกับการเขียน Test Automation

Unit-Tests และ End-to-End Test Automation จะช่วยให้คุณสามารถตรวจจับ Error ที่อาจเกิดขึ้นได้ หนึ่งในเหตุผลที่ว่าทำไม Code ที่ใช้งานอยู่ถึงมีปัญหาขึ้นมา ก็เพราะ Developer ทำการ Refactor Code ของพวกเขาในขณะที่ยัง Test ไม่ครอบคลุมทั้งหมด ซึ่งหมายความว่าการเปลี่ยนแปลงทั้งหมดจะไม่ถูก Test โดยอัตโนมัติ

7. ข้อผิดพลาดเกี่ยวกับการใช้ตัด Code (Method of Elimination)

หากคุณไม่สามารถระบุสาเหตุที่แท้จริงของปัญหาได้ คุณจำเป็นต้องใช้วิธีการตัด Code ออก (Method of Elimination) แล้วดู Error โดยให้คุณใส่ Comment ลงใน Code ไปทีละส่วน ซึ่งเปรียบเหมือนการตัด Code ส่วนนั้นออกไป แล้ว Run Program เพื่อดูว่ามี Error เกิดขึ้นหรือไม่ ถ้ามี Error อยู่ก็แสดงว่า Code ส่วนนั้นไม่เกี่ยวกับ Error วิธีการนี้จะช่วยให้คุณวินิจฉัยปัญหาได้ดีขึ้น

คุณสามารถสร้างข้อสันนิษฐาน แล้วพิสูจน์ว่า มันจริงหรือไม่จริง หลายครั้งที่ข้อสมมติฐานง่ายๆ อาจทำให้คุณค้นพบ Bug หรือป้องกันการเกิด Bug ก็ได้

8. การ Copy & Paste จาก StackOverflow (หรือ Source อื่นๆ)

บ่อยครั้งที่ Developer ทำการ copy และ paste code จาก stack overflow โดยที่ไม่เข้าใจว่า Code นั้นทำอะไร การทำอย่างนี้ สร้างผลกระทบหลายอย่าง ก่อนอื่น มันเป็นสิ่งสำคัญที่คุณต้องคำนึงถึงสิ่งที่จะเข้าไปสู่ Application ของคุณ

หลายครั้งที่ Nick ชอบโพสต์ คำถามไว้บน StackOverflow และพยายามทำให้มันชัดเจนมากที่สุด แต่สุดท้ายกลายเป็นว่า Nick สามารถหาคำตอบได้ด้วยตัวเอง

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

9. ข้อผิดพลาดเกี่ยวกับการแก้ไขปัญหาเดิมซ้ำๆ

หนึ่งในเทคนิคการ Debug ที่ประสบความสำเร็จมากอีกวิธีหนึ่งคือ การพยายามดูทุกรายละเอียดในวิธีแก้ปัญหาของคุณซ้ำแล้วซ้ำอีก และมีการ Re-Implement Function บางอย่างซ้ำอีกครั้งตั้งแต่ต้น สิ่งนี้เหมือนเป็นการบังคับกลายๆ ให้คุณค้นหาปัญหาที่อาจเกิดขึ้นจากการ Implementation ใหม่

10. ข้อผิดพลาดเกี่ยวกับการ Backtrack

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

11. ข้อผิดพลาดเกี่ยวกับการเรียนรู้ Debugger ต่างๆ

การลงทุนที่ดีที่สุดที่คุณสามารถทำได้คือ การเรียนรู้การใช้งาน Debugger นั่นเอง ซึ่งมี IDE ที่มาพร้อมกับ Debugger เหล่านั้น พวกมันทำตาม Concept พื้นฐานเดียวกัน รวมทั้งอนุญาตให้คุณสามารถหยุดการ Execution Application ของคุณได้ ไม่ว่าจะจากจุดเริ่มต้น หรือจากส่วนหนึ่งส่วนใดของ Program ที่สำคัญคือ มีเครื่องมือสำหรับการ Debug อยู่มากมายที่สามารถช่วยคุณในเรื่องนี้

ที่มา:  https://medium.freecodecamp.org/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด