วันอาทิตย์ที่ 20 ธันวาคม พ.ศ. 2558

Sub vs Function vs Method

Sub vs Function vs Method

>> สามศัพท์ข้างต้นเกิดขึ้นด้วยความหมายที่แตกต่างกัน นักพัฒนาโปรแกรมฝึกหัดเช่นผมควรทราบว่าการเขียนโปรแกรมหรืออ่านภาษาโปรแกรมแล้วพบศัพท์เหล่านี้นั้น ผู้ประดิษฐ์คิดค้นตัวภาษาเขาไม่ต้องการให้มันมีความหมายเหมือนกันนะครับ (เพราะถ้าอย่างนั้นคงเรียกชื่อเดียวไปแล้ว)

>> Sub มาจากคำว่า Subroutine คือ โปรแกรมย่อย ที่เมื่อทำงานเสร็จสิ้นแล้ว จะไม่ส่งผลการทำงาน (value) กลับไปยังโปรแกรมที่เรียก (ย้ำว่าไม่ส่งผลลัพธ์กลับ)

>> Function คือ โปรแกรมย่อย ที่เมื่อทำงานเสร็จสิ้นแล้ว จะส่งผลการทำงาน (value) กลับไปยังโปรแกรมที่เรียก

>> Method คือ พฤติกรรมของคลาส เขียนเพื่ออธิบายว่าคลาสใดๆนั้นมีพฤติกรรมอะไรบ้าง จะส่งผลการทำงานกลับไปยังคลาสที่เรียกใช้งานหรือไม่ ขึ้นอยู่กับพฤติกรรมนั้นๆเป็นหลัก

>> นักพัฒนาโปรแกรมมือใหม่มักจะสับสน แล้วนำเอาทั้งสามความคิดมารวบยอดเป็นวิธีการเขียนโปรแกรมของตัวเอง ซึ่งผิด มักเขียนเมธอดเป็นฟังก์ชัน เข้าใจการสร้างคลาสเป็นการแบ่งไฟล์ ทำโปรแกรมใหญ่ให้เป็นโปรแกรมย่อย ทั้งๆที่ใช้หลักการ OOP ส่งผลให้ Design Pattern ล่มสลายหรือไม่เคยเกิดขึ้นเลย

>> ถ้าถามว่าทำไมต้องแคร์เรื่องนี้ คำตอบส่วนตัวของผมก็คือ เพราะมันคือความรู้ของอาชีพ ยิ่งต้องทำงานกับคนหมู่มาก เราต้องทำความเข้าใจให้ตรงกันว่าแต่ละศัพท์ที่ใช้มีความหมายต่อการพัฒนางานอย่างไร การอ่านโค้ดจะง่ายขึ้น การประยุกต์ก็จะง่ายขึ้น รอยยิ้มปรากฏมากขึ้น รักและเชื่อมั่นในการงานอาชีพที่ทำครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น