Programming Naming ตั้งชื่ออย่างไรให้ง่ายต่อการพัฒนา

ไม่น่าเชื่อว่าการตั้งชื่อเป็นสิ่งที่ยากอันดับต้นๆสำหรับโปรแกรมเมอร์ จริงอยู่ว่าการตั้งชื่อนั้นไม่ได้มีกฎตายตัว แต่มันมีความละเอียดอ่อนในตัวมันอยู่ ถ้าหากเราตั้งชื่อไม่ดีจะมีปัญหาเมื่อเรากลับมาแก้ไข ถ้ายังจำได้ก็ดีไป แต่ถ้าลืมขึ้นมาก็ต้องมานั่งแกะโค้ดตัวเอง ยิ่งถ้าใครตั้งชื่อแบบอินดี้ ไม่ยึดติดกับสิ่งใด คงได้นั่งเสียเวลากันเป็นวันๆแน่

เนื้อหาในบทความนี้ไม่ได้ต้องการสร้างบรรทัดฐานในการตั้งชื่อแต่อย่างใด หากเพียงแค่ต้องการให้เป็นแนวทางสำหรับ Programmer ผู้ประสบปัญหากับการตั้งชื่อเท่านั้นเอง…

 

หลีกเลี่ยงการตั้งชื่อด้วยอักษรตัวเดียวเช่น i, j, k, …

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

แบบที่ 1 ชื่อสั้นๆ

แบบที่ 2 ชื่อยาวขึ้นมาหน่อย แต่ให้ความหมายที่ดีกว่า ดูเข้าใจง่ายขึ้น

 

อักษรตัวเดียวเหมาะกับโค้ดแบบไหน?

เหมาะกับการทำงานแบบสั้นๆที่ไม่ต้องไปตามไล่โค้ด เช่น for loop เป็นต้น

ตัวอย่าง

 

ใช้ชื่อที่สื่อความหมายแทนชื่อย่อ

แม้ว่าวิธีนี้จะดีกว่าการตั้งชื่อด้วยอักษรตัวเดียว แต่การตั้งชื่อตัวแปรโดยใช้ชื่อย่อนั้นก็ยังหนีปัญหาเดิมไม่ได้อยู่ดี นั่นคือ “สื่อความหมายได้ไม่ชัดเจน” บางทีอาจกลายเป็นคำกำกวมสร้างปัญหาให้เราเพิ่ม ตัวอย่างเช่น

แบบที่ 1: ใช้ทำอะไรก็พอเดาได้แต่ไม่แน่ใจ

 
แบบนี้ 2: แบบนี้ชัดเจนกว่าไม่ต้องเดา

 

อย่าตั้งชื่อเหมือน Object หากไม่ใช่ Object นั้น!

ชื่อแบบนี้จะสร้างความสับสนให้กับผู้แกะโค้ดเป็นอย่างมาก ยกอย่างเช่น ตัวแปรชื่อ userList เห็นชื่ออย่างนี้ใครก็คิดว่าเป็น List (ที่เป็น Object) แต่พอจะเอาไปใช้กลับใช้ไม่ได้ เลื่อนขึ้นไปเสาะหาความจริงกลับเป็น String[] userList; ซะอย่างงั้น! ดูตัวอย่าง
 
ตัวแปรไม่ใช่ List แต่ตั้งชื่อว่า List

 
ใช้ชื่อใหม่จะดีกว่า ไม่สับสน

 

ชื่อฟังก์ชันต้องขึ้นต้นด้วยคำกริยา เริ่มต้นด้วยตัวพิมพ์เล็ก คำถัดไปให้เริ่มต้นด้วยตัวพิมพ์ใหญ่

ตัวอย่าง

เรื่องนี้สำคัญนะครับ เป็นข้อตกลงของการตั้งชื่อฟังก์ชันที่ระบุไว้ใน Document ของภาษาต่างๆ ถึงขนาดที่ว่า framework บางตัวหากตั้งชื่อไม่ตรงตามรูปแบบจะไม่สามารถทำงานได้เลยทีเดียว

 

ฟังก์ชัน Boolean ใช้ is แทน get

ปกติถ้าเราต้องการเขียนฟังก์ชันเพื่อ get ค่าของตัวแปร ชื่อจะขึ้นต้นด้วย get แล้วตามด้วยชื่อของตัวแปรนั้น

ตัวอย่าง

 
แต่ถ้าเป็นกรณีที่ตัวแปรเป็น boolean จะใช้ is แทน get ซึ่งเป็นหนึ่งในข้อตกลงในการตั้งชื่อและสื่อความหมายได้ดีกว่าและด้วย

ตัวอย่าง

 

ชื่อตรงไปตรงมาสื่อถึงการทำงานอย่างชัดเจน

ควรตั้งชื่อให้ตรงและกระชับไม่อินดี้ ดังตัวอย่าง

แบบที่ 1: ไม่ควรตั้งชื่อแบบอินดี้

แบบที่ 2: ใช้ชื่อตรงๆชัดๆแบบนี้จะดีกว่า

 
 

Advertisment ad adsense adlogger