Guard Clauses is ?
Guard Clauses เป็นทางเลือกที่ดีสำหรับการเขียน If — Else Statement แล้วทำไมถึงเป็นทางเลือกที่ดีล่ะ ?
เพราะว่า Guard Clauses ในการเขียน If — Else Statement รูปแบบนึงที่ช่วยให้เราสามารถเขียน If — Else Statement ได้ Clean ขึ้น และยัง Readable มากขึ้น และยังคงป้องกัน(Guard) ให้ Flow ของเรายังทำงานตาม Logic เดิมได้อย่างถูกต้อง
เจ้า Guard Clauses เนี่ยมีประโยชน์อย่างมากเมื่อ Project เราทำไปซักระยะนึงแล้วมี Flow ร้อยเรียงกันมากมาย เพราะว่าจะช่วยให้เราสามารถไล่ Code ได้ดีขึ้น ลดจำนวน Line of Code ของ Class นั้นๆ และยังช่วยเพิ่มประสิทธิภาพในการทำงานของ Function นั้นๆที่เราเขียน เมื่อ Function ต่างๆทำงานได้ดีขึ้น ก็จะช่วยให้ Application ของเรานั้นทำงานได้ไวขึ้นอีกด้วย
If — Else Statement
ปฎิเสธไม่ได้ว่าหลายในมหาวิทยาลัยหรือตาม Online Course ต่างๆ นั้นเริ่มสอนการเขียน If — Else Statement ตามตัวอย่างด้านล่างนี้
if (condition1) {
// TODO
} else if (condition2) {
// TODO
} else {
// TODO
}
ซึ่งเราก็ต้องยอมรับว่าส่วนมากนั้น If — Else Statement เกิดจากการเขียนเงื่อนไขง่ายๆ และเพิ่มเข้ามาซ้อนกันไปเรื่อยๆ ตาม Business Flow แต่ความเรียบง่ายในตอนต้นนั้นมักจะสร้างปัญหาให้เราอ่านยากในตอนปลายเสมอ
Check isAdmin with If — Else Statement
ถ้าสมมติเรามี Object User อยู่คนนึง และเราต้องการเขียน Program เพื่อ Check ว่า User คนนี้เป็น ‘Admin’ หรือไม่ และถ้าเป็น ‘Admin’ แล้วเป็น ‘Manager’ ด้วยหรือ ไม่เราก็จะเขียนออกมาได้ในรูปแบบประมานนี้
จะเห็นได้ว่าเราจะมีคำสั่ง If — Else Statement อยู่ภายใต้คำสั่ง If — Else Statement ซ้อนกันอีกที ซึ่งแบบนี้ทำให้เกิด Nested Problem เมื่อนานๆไปจะทำให้ Code เราช้า และอ่านยากขึ้น
Guard Clauses Example
จากตัวอย่างข้างบนสามารถเขียน If — Else Statement ด้วย Guard Clauses ได้ดังนี้
ก็จะเห็นได้ชัดเจนเลยว่า Code ของเรานั้น อ่านได้ง่ายขึ้น เป็นระเบียบมากขึ้น และสั้นลงเป็นอย่างมากนั่นเอง