เพราะโค้ดคืองานศิลปะ 🖌
วิธีการเขียนโค้ดที่ดี มีประสิทธิภาพ และง่าย 🚀
หากต้องการสร้างฟังก์ชั่นแสดงผลลัพท์แบบนี้จะต้องเขียนโค้ดอย่างไรดี
Coffee ☕ 1
Coffee ☕ 2
สมมุติว่าเขียนด้วย JavaScript ยกตัวอย่างให้ 2 ทางเลือก
วิธีการที่ 1
function drinkCoffee() {
console.log(`Coffee ☕ 1
Coffee ☕ 2`)
}drinkCoffee()
วิธีการที่ 2
function drinkCoffee(quantity) {
for (let i=1; i<=quantity; i++) {
console.log(`Coffee ☕ ${i}`)
}
}drinkCoffee(2)
ด้วยวิธีแรกเขียนไป 4 บรรทัด ส่วนวิธีที่สองใช้ทั้งหมด 5 บรรทัด จำนวนตัวอักษรก็มากกว่า
เราควรเลือกวิธีแรกใช่ไหม ? เพราะเขียนน้อยกว่า และได้ผลลัพท์เหมือนกัน
ในบทความนี้เราจะมาหาคำตอบกัน 🔥
Good code rules 🚀
กฏง่าย ๆ ในการเขียนโค้ดที่ดี
- Reusable — คือสามารถนำกลับมาใช้ซ้ำได้
- Refactorable — คือสามารถแก้ไขโค้ดได้ง่าย
- Readability — สามารถอ่านได้ง่ายสำหรับมนุษย์
ทีนี้เราจะลองมาทำเช็คลิสต์กันว่าวิธีการทั้งสองผ่านกฏหรือไม่ผ่านกฏเหล่านี้ข้อใดบ้าง 📑
กฏนี้ไม่ใช่ข้อบังคับเป็นเพียง Convention พื้นฐานที่เราทำตาม ๆ กันมา และผลลัพท์จากการเปรียบเทียบครั้งนี้ก็ไม่ใช่ผลลัพท์สัจธรรม อาจมีความแตกต่างกันไปขึ้นอยู่กับหลาย ๆ ปัจจัย คิดให้ยืดหยุ่นเข้าไว้ เหมือนโค้ดไงล่ะ💡
เริ่มการประเมิน ✏️
วิธีการที่ 1
function drinkCoffee() {
console.log(`Coffee ☕ 1
Coffee ☕ 2`)
}drinkCoffee()
- Reusability — ถ้า fixed จำนวนเป็น 2 แก้ว สามารถใช้ซ้ำได้ แต่ถ้าต้องการเพิ่มหรือลดจำนวน ไม่สามารถใช้ซ้ำได้
- Refactoring — ไม่สามารถแก้ได้ง่าย ๆ เช่นถ้าต้องการเพิ่มเป็น 100 แก้ว จะต้องเขียนเยอะมาก ๆ
- Readability — ถ้าจำนวนไม่มากก็โอเค แต่ถ้ามีสัก 100 แก้ว จะต้องเป็นฝันร้ายแน่ ๆ
วิธีการที่ 2
function drinkCoffee(quantity) {
for (let i=1; i<=quantity; i++) {
console.log(`Coffee ☕ ${i}`)
}
}drinkCoffee(2)
- Reusability — สามารถใช้ซ้ำได้อย่างง่ายได้ มีความยืดหยุ่น
- Refactoring —สามารถแก้ไขได้ง่าย ๆ
- Readability — ถึงแม้จะมีการ loop เข้ามาเกี่ยวข้อง แต่ developer เมื่ออ่านก็จะรู้ทันทีว่ามันคือการแสดงค่าหลาย ๆ ครั้ง เป็น nature ไปแล้ว
สรุป 📕
วิธีการที่ 2 ดีกว่าในทุก ๆ ด้าน เพราะฉะนั้น มันไม่เกี่ยวกับบรรทัดของโค้ดหรือจำนวนตัวอักษรที่ต้องเขียนเสมอไป
ในหลาย ๆ ครั้ง หากเป็นไปได้ ควรให้คอมพิวเตอร์จัดการเรื่องงานซ้ำ ๆ เพราะคอมพิวเตอร์เกิดขึ้นมาเพื่องานนี้อยู่แล้ว
นอกเหนือจากนี้ยังมี code style ด้วย เช่นการตั้งชื่อค่าตัวแปร, Pattern ของโค้ด และอื่น ๆ เรื่องพวกนี้ก็ดีเหมือนกัน ทำให้โค้ดมีความสม่ำเสมอ ไปทิศทางเดียวกัน
อย่างที่บอกตั้งแต่ต้น เพราะโค้ดคืองานศิลปะ หวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านทุกท่าน ขอบคุณมากครับผม 🚀 🔥