10 สิ่งที่โปรแกรมเมอร์พลาดบ่อย

 

1. เรียกใช้ตัวแปร แต่ไม่ได้ประกาศตัวแปรก่อนใช้

ผลที่ตามมาคือ เกิด Warning : undefined variable เพราะตัวแปรที่เรียกใช้ไม่มีค่า

2. ปิดเครื่องหมาย } , (comma) ; (semicolon) ไม่ครบ

เป็นเรื่องตกม้าตายของโปรแกรมเมอร์ที่เกิดขึ้นบ่อยที่สุด บางครั้งเราใช้เวลาเป็นวันๆ เพื่อหาจุดผิดพลาดแล้วมาพบว่า ตกเครื่องหมายแค่ตัวเดียว T^T

3. ฟิลด์ที่รับค่าเป็นตัวเลข เผลอปล่อยให้กรอกตัวอักษรเข้ามาได้

มักเกิดจากการลืมเช็คประเภทของข้อมูล (Data Type) ทำให้บางครั้ง ผู้ใช้งานสามารถกรอกตัวอักษรเข้ามาในระบบได้ ควรเช็คก่อนนะจ๊ะ

4. ตั้งชื่อตัวแปรซ้ำกัน

มักเกิดในกรณีที่ระบบมีความซับซ้อนและเขียนหลายหน้า ทำให้บางครั้งเราเผลอใช้ชื่อตัวแปรซ้ำกัน เช่น $text $context $config $result $rs $total $sum หรือบางครั้งเขียนลูปตัวตัวแปรตัวเดียวกัน ทำให้เกิดการคำนวณผิดพลาด ดังนั้นควรมีการลำดับชื่อตัวแปรดีๆ และในกรณีที่ชื่อตัวแปรมีความหมายใกล้เคียงกันหรือเป็นข้อมูลประเภทเดียวกัน เราอาจเก็บค่าในลักษณะของ Object หรือ Array แทนได้ เช่น $config['username'] , $config['password'] เป็นต้น

5. ใช้คำสั่งที่ถูกยกเลิกไปแล้ว

ส่วนมากเกิดจากความเคยชินในการใช้งานหรืออ่านวิธีการเขียนโปรแกรมจากหนังสือเวอร์ชั่นเก่าๆ ที่สอนเขียนด้วยวิธีการเก่าๆ หรือคำสั่งเก่าๆ ซึ่งถูกยกเลิกไปแล้ว เช่น mysql_connect, mysql_query, mysql_fetch_array, str_replace, ereg, session_register, session_destroy เราสามารถแก้ปัญหาด้วยการเปลี่ยนมาใช้ คำสั่งใหม่ที่ให้ผลลัพท์ใกล้เคียงได้ เช่น mysqli หรือ PDO , preg_replace ฯลฯ เป็นต้น

6. ลืมลบคำสั่งที่ไม่ได้ใช้

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

7. ทดสอบเองทีไรไม่เจอบั๊ก

มันน่าแปลกใจจริงๆที่ เราเขียนโปรแกรมทดสอบมาหลายวัน โปรแกรมก็ใช้งานได้ปกติ แต่พอส่งให้ลูกค้าตรวจ หรือพอถึงวันพรีเซนต์เท่านั้นแหละ โปรแกรมมันก็ Error ขึ้นมาเฉยๆ เคยเป็นมั๊ย? ส่วนใหญ่มันเกิดจากที่เราเป็นโปรแกรมเมอร์ มักจะรู้วิธีใช้งานที่ถูกวิธี ทำให้ทดสอบทีไรก็ไม่เจอ Error ซักที แต่คนทั่วไปที่ทดสอบมักจะใช้ไม่ถูกวิธี ทำให้เจอบั๊กในที่สุด 555+

8. ใช้ตัวแปร Global

ข้อดีของตัวแปร Global คือ เราสามารถใช้ตัวแปรตัวนั้นได้ ในทุกๆคลาสและฟังก์ชั่น แต่ส่วนตัวรู้สึกว่าการเขียนตัวแปร Global เป้นวิธีการที่ควรหลีกเลี่ยงนะครับ เพราะบางครั้งเราอาจตั้งชื่อตัวแปรที่อาจเผลอใช้ซ้ำได้ ถ้าโปรแกรมมีการแทนค่าตัวแปรนั้น อาจทำให้การทำงานผิดไป และเราจะ debug ยากมากว่าผิดที่จุดไหน เนื่องจากตัวแปรนั้นทำงานในทุกคลาสนั่นเอง ถ้าจำเป็นตัวใช้ตัวแปรที่ต้องการจะใช้ในทุกคลาส แนะนำให้ใช้ตัวแปรแบบ Constrant แทนนะครับ

 

9. เขียนคำสั่งผิดภาษา

มีใครเคยเป็นมั๊ย บางวันที่เราต้องสลับมาเขียนโปรแกรมหลายภาษา มันก็มีสับสนบ้าง พอจะแก้ภาษา PHP เผลอเขียน C# ไปแทนซะอย่างนั้น

$input=$string.replace(""); //ผิดนะครับ อย่าก๊อบไปใช้

บางครั้งเขียน java ต่อ string ด้วย . (dot) ซะอย่างนั้นได้

var string = val1 . val2; //ผิดนะครับ อย่าก๊อบไปใช้

10. ตั้งชื่อฟังก์ชั่นหรือชื่อ Class ตรงกับคำสงวน

บางครั้ง การตั้งชื่อเราอาจเผลอใช้ชื่อเดียวกับคำสงวน เช่น Date() จึงควรหลีกเลี่ยงหรือใช้ prefix มาเติมข้างหน้าหรือข้างหลังตัวแปรนั้นครับ เช่น convertDate() เป็นต้นครับ

 

หวังว่าเพื่อนๆจะได้รับประโยชน์จากบทความนี้ ไม่มากก็น้อยนะครับ :)