เพราะโค้ดคืองานศิลปะ 🖌

วิธีการเขียนโค้ดที่ดี มีประสิทธิภาพ และง่าย 🚀

Thanawat Yodnil
2 min readJun 9, 2021
Photo by Oskar Yildiz on Unsplash

หากต้องการสร้างฟังก์ชั่นแสดงผลลัพท์แบบนี้จะต้องเขียนโค้ดอย่างไรดี

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 พื้นฐานที่เราทำตาม ๆ กันมา และผลลัพท์จากการเปรียบเทียบครั้งนี้ก็ไม่ใช่ผลลัพท์สัจธรรม อาจมีความแตกต่างกันไปขึ้นอยู่กับหลาย ๆ ปัจจัย คิดให้ยืดหยุ่นเข้าไว้ เหมือนโค้ดไงล่ะ💡

Photo by Stillness InMotion on Unsplash

เริ่มการประเมิน ✏️

วิธีการที่ 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 ของโค้ด และอื่น ๆ เรื่องพวกนี้ก็ดีเหมือนกัน ทำให้โค้ดมีความสม่ำเสมอ ไปทิศทางเดียวกัน

อย่างที่บอกตั้งแต่ต้น เพราะโค้ดคืองานศิลปะ หวังว่าบทความนี้จะเป็นประโยชน์กับผู้อ่านทุกท่าน ขอบคุณมากครับผม 🚀 🔥

--

--

No responses yet