อะไรคือ Yoda conditions
15 May 2024 04:00
Written by: Yosapol Jitrak
การเขียนโปรแกรมมักมีมีมหรือการตั้งชื่อเรียกต่าง ๆ ที่เป็นที่รู้จักกัน ซึ่ง Yoda conditions ก็เป็นหนึ่งในนั้น
บทความนี้เริ่มมาจาก เจอ Yoda conditions ในงานที่ทำ และพอลองสอบถามหลายคนในทีม ก็ไม่รู้จักกัน เลยอยากแบ่งปันให้หลายคนที่อาจจะไม่รู้จัก ได้รู้กันครับ
ก่อนอื่นเรามาดูตัวอย่างการพูดของ Yoda จาก Star Wars เสียก่อน เช่น
ถ้าดูจากรูปประโยคข้างต้น จะรู้สึกว่ามันแปลก ๆ กับประโยคภาษาอังกฤษทั่วไป ที่ควรจะเป็น “You must go” หรือ “I can help you” แต่กลับเป็น “Go you must” หรือ “Help you I can” ซึ่งเป็นลักษณะของการพูดของตัวละคร Yoda จากเรื่อง Star Wars
แล้วมันเกี่ยวกับการเขียนโปรแกรมของเรายังไงละ ลองมาดูตัวอย่างกัน
if (5 == count) {
// do something
}
ในตัวอย่างข้างต้นเราจะเห็นว่าเราใช้ 5 == count
แทนที่จะเขียน count == 5
ซึ่งเป็นการใช้ Yoda conditions ในการเขียนโปรแกรม
Credit image: “Yoda Conditions”, “Pokémon Exception Handling” and other programming classics
Yoda conditions คือการเขียนเงื่อนไขในภาษาโปรแกรมโดยที่เราจะเอาค่าคงที่ไปไว้ด้านซ้ายของเงื่อนไข และตัวแปรที่เราต้องการเปรียบเทียบไปไว้ด้านขวาของเงื่อนไข
if (constant == variable)
แทน
if (variable == constant)
การใช้ Yoda conditions อาจจะช่วยป้องกันการเขียนโค้ดที่ผิดพลาดเนื่องจากการใช้ =
แทน ==
หรือ ===
ซึ่งเป็นข้อผิดพลาดที่อาจพบได้ในการเขียนโปรแกรม แทนที่จะเป็นการเปรียบเทียบค่า กลับกลายเป็นการกำหนดค่าให้ตัวแปรเฉย รูปแบบการเขียนนี้มีหลายเจ้าที่ใช้เป็นมาตราฐาน เช่น Wordpress/PHP Coding Standards/Yoda Conditions
if ( true === $the_force ) {
$victorious = you_will( $be );
}
แต่วิธีการนี้ขัดแย้งกับหลักการคิดของมนุษย์ ทำให้โค้ดนั้นอ่านยากขึ้น จึงควรหลีกเลี่ยง การแก้ปัญหาที่ใช้เครื่องหมายผิด ควรใช้ Linter ช่วย และเป็นความรับผิดชอบของผู้เขียนโปรแกรมมากกว่า
หวังว่าบทความนี้จะเป็นประโยชน์กับคนที่เข้ามาอ่านกันนะครับ เจอกันใหม่บทความหน้าครับ