5 JavaScript Tips to Make You a Better Programmer
30-Apr-20
คัมภีร์เทพ IT
See the original english version Click here!
มีหลายวิธีที่เราสามารถ Optimize JavaScript Code ของเรา ซึ่งบทความนี้จะช่วยบอกถึงข้อผิดพลาดทั่วไปและวิธีหลีกเลี่ยงด้วยการเขียน Code ให้เข้าใจได้ง่ายขึ้น ดังนั้น เรามาดู 5 เคล็ดลับ ที่ช่วยให้เขียน JavaScript Code ได้ดีขึ้นกว่าเดิม
1. ใช้ .map หรือ .forEach แทนการใช้ Loops
ส่วนใหญ่ Application ที่ซับซ้อน มักมีการวน Loops ในชุด Data ที่เหมาะสมซึ่งโดยทั่วไปจะเป็นกรณีของ Arrays หรือ Objects และการใช้ for Loops ก็มักจะทำให้ Code อ่านได้ยากขึ้นและทำให้ยากในการติดตาม
ตัวอย่าง ลองดูที่ Code ด้านล่าง แล้วคิดดูว่าคุณจะชอบแบบไหนมากกว่ากัน
แต่ถ้าเรามี Arrays ที่ซับซ้อนขึ้น เช่น Array ของ Objects ล่ะ เราสามารถใช้ map, filter, reduce เพื่อจุดประสงค์ในการทำอะไรซ้ำ ๆ
- Object.keys : จะ Return Array ของ Property names ของ Object ที่ตั้งค่า enumerable ไว้
- Object.values : จะ Return Array ของ Property values ของ Object ที่ตั้งค่า enumerable ไว้
- Object.entries : จะ Return Array ของ Property ออกมาให้ทั้ง key และ value ในรูปแบบ [key, value] ที่ตั้งค่า enumerable ไว้
Methods ทั้ง 3 จะทำการดึง keys หรือ values จาก Object มาใส่ใน Array แล้วทำการ Return Array เหล่านั้นกลับมาให้

ตอนนี้เรามี Array แล้ว เราสามารถประมวลผล values ซ้ำ ๆ ได้ ด้วย map หรือ forEach เพื่อดึงค่าต่าง ๆ ออกมา
2. ใช้ const เป็นค่า Default
จากตัวอย่างด้านล่างนี้ เรามีการประกาศตัวแปร name ของเราไปก่อนหน้านี้และมีการเปลี่ยนค่าไปหลายครั้ง เราอาจพบ Bug บางอย่างที่ไม่คาดคิด ซึ่งสามารถหลีกเลี่ยงได้ด้วยการใช้ const

เหตุผลที่ควรใช้ const :
- เพื่อหลีกเลี่ยง Side Effects ที่เกิดจากการ Reassign โดยไม่ได้ตั้งใจ
- ช่วยสร้างประสบการณ์ที่ดีให้กับ Developer เพราะจะช่วยลดความไม่แน่นอน Developer ที่เห็นตัวแปร const จะสามารถไว้ใจได้ว่า มันจะไม่ถูก Reassign
- const มีความสอดคล้องกับ Functional Programming และ Immutable States
3. หลีกเลี่ยงการใช้ Closure ซ้อนกัน (Nesting Closures)
การทำความเข้าใจ Closures ใน JavaScript นั้นถือเป็นสิ่งจำเป็น เราใช้ Closures กันบ่อย ๆ ลองดูใน Code ด้านล่างนี้
คุณหา Closure เจอหรือไม่ คำใบ้ก็คือ Closure จะอยู่ในบรรทัดที่ 4 โปรดจำไว้ว่า Closure จะจดจำ Environment ต่าง ๆ ที่มันประกาศเอาไว้แต่แรก
ตอนนี้เราได้ทราบแล้วว่า Closure คืออะไร คำถามคือเราจะปรับปรุง Code ได้อย่างไร มันเป็น Code ที่ค่อนข้างเรียบง่ายที่จัดรูปแบบ ชื่อทั้งหมดภายใน Array ให้เป็นตัวพิมพ์เล็ก
คำแนะนำ: หลีกเลี่ยงการใช้ Closures ซ้อนกัน
นี่คือตัวอย่างง่าย ๆ ของวิธีที่คุณสามารถหลีกเลี่ยงการใช้ Closures ซ้อนกัน
จะสังเกตว่า เราใช้ Closure และวางมันลงใน Function Expression วิธีนี้จะทำให้ Code ของเราง่ายต่อการติดตาม ลองดูที่ตัวอย่าง Code ต่อไปนี้
Code ด้านบน ทำการประมวลผลซ้ำ ๆ ใน Array ของ Objects จากนั้นจะทำการรวมคะแนนและปัดเป็น Round Number แม้ว่า Code นี้สามารถเข้าใจได้ แต่เราก็ยังสามารถปรับปรุง Code ให้ดีขึ้นกว่าเดิมได้
นี่คือวิธีที่คุณสามารถปรับปรุง Code ได้โดยแยก Logic การรวมคะแนนไปยัง Function Expression ของตัวมันเอง
คุณสามารถอ่านบทความ “Why I avoid nesting closures” โดย Kent C. Dodds หากคุณอยากรู้ในเชิงลึกถึงเหตุผลที่ควรหลีกเลี่ยงการใช้ Closures ซ้อนกัน
4. หลีกเลี่ยงการใช้ If ซ้อนกัน (Nested Ifs)
การใช้ If statements ซ้อนกันเป็นสาเหตุสำคัญของการเกิด Code Smell และทำให้ยากต่อการ Maintain Codebase อีกด้วย
นี่เป็นตัวอย่างของการตรวจสอบเงื่อนไขด้วยการใช้ If statements ซ้อนกัน
เรามาดูกันว่า จะสามารถปรับปรุง Code ให้ดีขึ้นได้อย่างไรจากด้านล่างนี้
เราเปลี่ยน Code จาก 7 บรรทัดเป็น 3 บรรทัด นั่นถือเป็นการปรับปรุง Code ได้เป็นอย่างดี เนื่องจากทั้ง 3 เงื่อนไขต้องได้รับการประเมินว่าเป็น “True” เราจึงสามารถใช้ && operator ได้ ซึ่ง && ก็หมายถึง AND อีกทางเลือกหนึ่งก็คือ การใช้ || (Double Pipe Operator) ซึ่งหมายถึง OR ความแตกต่างระหว่าง && กับ || ก็คือ สำหรับ && นั้น จะต้องเป็นจริงในทุกเงื่อนไข แต่สำหรับ || มีเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง ก็เพียงพอแล้ว
5. ใช้ตัวแปร แทน If Clauses มีความซับซ้อน
อาจมีบางครั้งที่เราพบว่า ตัวเองกำลังเจอกับสถานการณ์ที่ If statements มีความซับซ้อนสูง ลองดูตัวอย่าง Code ด้านล่างนี้
แน่นอนว่ามันทำให้เราต้องใช้ความพยายามในการทำความเข้าใจมากขึ้น คำถามคือ เราจะปรับปรุง Code ให้ดีขึ้นได้อย่างไรล่ะ ลองดูตาม Code ด้านล่างนี้
ด้วยการแยกตัวแปรมาเปรียบเทียบให้น้อยลง จะช่วยทำให้ Code ง่ายต่อการติดตามมากกว่าเดิม แม้จะใช้เวลาเพิ่มขึ้นเล็กน้อยแต่ด้วยวิธีนี้ มันเป็นการปรับปรุงประสิทธิภาพการทำงานของ Developer ในระยะยาวได้เป็นอย่างดี
ที่มา: https://medium.com/
รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert
อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ
บทความล่าสุด