การเขียนโค้ดให้ดูสะอาด เข้าใจง่าย และสามารถดูแลหรือปรับเปลี่ยนได้ในระยะยาว เป็นสิ่งสำคัญมาก ไม่ว่าจะเป็นโปรเจกต์เล็กหรือใหญ่ หากเราเขียนทุกอย่างไว้ในไฟล์เดียวหรือรวมทุกบรรทัดเข้าไว้ที่เดียวกัน จะทำให้โค้ดดูรก ซับซ้อน และยากต่อการบำรุงรักษา ซึ่งหนึ่งในวิธีจัดการกับปัญหานี้คือการสร้างฟังก์ชันเพื่อแยกโค้ดให้ง่ายต่อการจัดการ
ทำไมต้องแยกโค้ดออกเป็นฟังก์ชัน
การแบ่งโค้ดออกเป็นฟังก์ชันไม่ใช่แค่ทำให้โค้ดดูดีขึ้น แต่ยังเป็นการช่วยให้โค้ดสามารถกลับมาแก้ไขได้ง่าย ทดสอบได้ง่าย และใช้งานซ้ำได้ โดยเฉพาะในการทำงานร่วมกับทีม โครงสร้างที่เป็นระเบียบจะช่วยประหยัดเวลา และลดโอกาสในการเกิดข้อผิดพลาด
ข้อดีของการใช้ฟังก์ชัน
- ลดความซ้ำซ้อนของโค้ด: เขียนโค้ดเพียงครั้งเดียวและเรียกใช้งานซ้ำได้หลายครั้ง
- เข้าใจง่าย: ฟังก์ชันที่ดีควรสื่อถึงจุดประสงค์ที่ชัดเจน
- แก้ไขง่าย: หากโค้ดมีบั๊ก เราแก้แค่ภายในฟังก์ชันโดยไม่กระทบต่อโค้ดส่วนอื่น
- ช่วยในการทดสอบ: เขียน unit test ได้ง่ายขึ้น
หลักการพื้นฐานของการสร้างฟังก์ชัน
ก่อนจะสร้างฟังก์ชันใด ๆ ควรมีแนวทางหรือหลักการเบื้องต้นที่ช่วยให้ฟังก์ชันของเรามีคุณภาพ และรองรับการใช้งานในระยะยาว
- ฟังก์ชันควรทำหน้าที่เพียงอย่างเดียว เช่น คำนวณผลลัพธ์ แสดงข้อมูล หรือบันทึกข้อมูล
- ตั้งชื่อฟังก์ชันให้อธิบายได้ด้วยตัวเอง เช่น
calculateDiscount()หรือdisplayUserInfo() - ควรมี input ที่ชัดเจน และ output ที่คาดเดาได้
- ไม่ควรพึ่งพาตัวแปรนอกฟังก์ชันมากเกินไป เพื่อลดผลกระทบจากภายนอก
ตัวอย่างวิธีแยกโค้ดออกเป็นฟังก์ชัน
เรามาดูตัวอย่างง่าย ๆ ที่แสดงให้เห็นว่าการแยกโค้ดออกเป็นฟังก์ชันนั้นช่วยให้จัดการง่ายขึ้นอย่างไร
โค้ดก่อนแยกเป็นฟังก์ชัน
price = 100
quantity = 3
discount = 0.1
total = price * quantity
if total > 200:
total = total - (total * discount)
print("Total price:", total)
โค้ดหลังแยกเป็นฟังก์ชัน
def calculate_total(price, quantity, discount):
total = price * quantity
if total > 200:
total -= total * discount
return total
def display_total(total):
print("Total price:", total)
# ใช้งาน
price = 100
quantity = 3
discount = 0.1
total = calculate_total(price, quantity, discount)
display_total(total)
จะเห็นได้ว่าโค้ดหลังจากแยกฟังก์ชันทำให้อ่านง่ายขึ้น และในอนาคตหากต้องการเปลี่ยนเงื่อนไขหรือการคำนวณ เราเพียงแก้ไขในฟังก์ชันเท่านั้น
เทคนิคการแยกฟังก์ชันแบบมืออาชีพ
- หมั่นใช้คำถามว่า “โค้ดบรรทัดนี้ทำหน้าที่อะไร?” ถ้าตอบได้ว่าเป็นหน้าที่เฉพาะ แยกเป็นฟังก์ชันได้เลย
- แบ่งตามขั้นตอนของโปรแกรม เช่น รับข้อมูล → ประมวลผล → แสดงผล
- แยกตามความรับผิดชอบ (Separation of Concerns)
- ใช้ Comment ช่วยก่อนแยกฟังก์ชัน เช่น
# คำนวณราคารวมแล้วแยกคำอธิบายไปสร้างฟังก์ชันจริง
เครื่องมือตรวจสอบโค้ดอัตโนมัติ
ถ้าอยากให้โค้ดเราเป็นระบบมากขึ้น สามารถใช้เครื่องมือตรวจสอบโค้ด เช่น:
| เครื่องมือ | ภาษาที่รองรับ | ความสามารถ |
|---|---|---|
| ESLint | JavaScript | ตรวจรูปแบบโค้ด และแนะนำการปรับปรุง |
| Flake8 / Black | Python | ตรวจ Style และจัดรูปแบบโค้ดอัตโนมัติ |
| Prettier | JavaScript, TypeScript | จัดรูปแบบโค้ดให้อ่านง่ายขึ้น |
การเขียนโค้ดไม่ใช่แค่ทำงานให้เสร็จ แต่เป็นศิลปะในการสื่อสาร ถ้าโค้ดของคุณสื่อความหมายได้ดี คนที่มาดูต่อจะเข้าใจได้ไม่ยาก และคุณเองก็จะดูเป็นมืออาชีพมากขึ้น
เริ่มต้นจากโค้ดของคุณเองวันนี้ ลองสังเกตว่าโค้ดส่วนไหนสามารถแยกออกมาเป็นฟังก์ชันได้บ้าง แล้วปรับปรุงทีละนิด คุณจะพบว่าการจัดการโค้ดในระยะยาวกลายเป็นเรื่องง่ายขึ้นมาก
