หัวข้อนี้อาจทำให้หลายคนสงสัยว่า ผมเขียนขึ้นมาทำไม หลายๆคนที่ได้เรียนวิชา Programming ต่างๆก็คงถูกสอนกันมาอยู่แล้วว่า การตั้งชื่อตัวแปรต้องให้สื่อความหมาย ไม่ใช่สักแต่ว่า a,b,c; หรือ x,y,z เพราะมันจะทำให้คนที่จะมาเขียนโปรแกรมต่อจากเราทำได้ยาก ถ้าเป็นโปรแกรมเล็กๆก็พอรับได้ แต่ถ้าเป็นงานใหญ่ๆ ที่มีหลายๆไฟล์ เช่น แต่ละไฟล์ตั้งชื่อ A.java,B.java,C.java แล้วข้างในมีตัวแปร a,b,c เต็มไปหมด อาจทำให้ช็อคตายได้ (ฮ่าๆ...)
แต่มันยังไม่หมดแค่นั้น นอกจากจะตั้งชื่อให้สื่อความหมายแล้ว ควรสังเกตลักษณะไวยากรณ์ (Syntax) ของแต่ละภาษาด้วยว่าเค้าเขียนกันอย่างไร ซึ่งถ้าเป็นภาษา Java จะเป็นลักษณะ Camel Case ซึ่งคืออะไรนั้น จะยกตัวอย่างให้ดูด้านล่างครับ
สำหรับลักษณะการตั้งชื่อตัวแปรที่ได้รับการนิยม และเป็นมาตรฐานสำหรับแต่ละภาษา เพื่อให้เหล่า Programmer ฝ่ายเดียวกันเขียนโปรแกรมได้คล้ายคลึงกัน มีดังนี้ครับ
Hungarian Notation
จะใช้ตัวย่อของชนิดตัวแปรขึ้นต้น โดยจะใช้ตัวอักษรตัวพิมพ์เล็กทั้งหมด ซึ่งตัวย่อจะถูกกำหนดไว้เป็นมาตรฐานเดียวกัน ทำให้การตั้งชื่อตัวแปรแบบ Hungarian Notation จะทำให้ Programmer อ่านโปรแกรมได้ง่ายขึ้น จากนั้นคำต่อๆไปตัวอักษรตัวแรกของคำจะเป็นตัวใหญ่
ภาษาที่นิยมใช้ : C, C++
Camel Case
เป็นการตั้งชื่อโดยกำหนดให้คำแรกเป็นตัวอักษรตัวเล็กทั้งหมด แต่ไม่ได้ใช้อักษรย่อ การตั้งชื่อแบบ Camel Case จะเป็นคำต่อกันทั้งหมด ซึ่งตัวอักษรตัวแรกของคำที่ 2 ขึ้นไป จะเป็นตัวใหญ่ (คำที่ 2 ขึ้นไปเหมือน Hungarian Notation)
ตัวอย่างการตั้งชื่อตัวแปรแบบ Camel Case : productPrice, summaryResult
ภาษาที่นิยมใช้ : Java
Pascal Case
การตั้งชื่อลักษณะนี้ ต่างจาก Camel Case ตรงที่จะใช้ตัวอักษรตัวแรกของทุกคำเป็นตัวใหญ่ทั้งหมด (ตัวแรกด้วย)
ตัวอย่างการตั้งชื่อตัวแปรแบบ Pascal Case : FirstName, LastName
ภาษาที่นิยมใช้ : C#, .NET
Upper Case
เป็นการตั้งชื่อโดยใช้ตัวอักษรตัวใหญ่ทั้งหมด ซึ่งมักจะใช้ตัวอักษรย่อ หากเขียนเป็น Upper Case แบบหลายๆคำแบบ Camel Case หรือ Pascal Case จะทำให้เกะกะตาเป็นอย่างมาก
ตัวอย่างการตั้งชื่อตัวแปรแบบ Upper Case : ID, PI
ภาษาที่นิยมใช้ :
Underscores
แทนที่จะแบ่งคำด้วยตัวอักษรตัวเล็กตัวใหญ่ (case sensitive) การตั้งชื่อแบบนี้จะใช้ _ (Underscore) แทน แต่การตั้งชื่อแบบนี้จะทำให้ชื่อตัวแปรยาวไปหน่อยครับ
ตัวอย่างการตั้งชื่อตัวแปรแบบ Underscores : my_variable
ภาษาที่นิยมใช้ : PHP
แหล่งข้อมูล :
http://www.unzeen.com/article/1342/ว่าด้วยมาตรฐานในการตั้งชื่อตัวแปร
thaioop.wordpress.com/2006/12/07/ตอน-17-หลักการตั้งชื่อในภ/
http://en.wikipedia.org/wiki/CamelCase
http://en.wikipedia.org/wiki/Hungarian_notation
http://c2.com/cgi/wiki?CamelCase
http://www.tizag.com/phpT/variable.php
แต่มันยังไม่หมดแค่นั้น นอกจากจะตั้งชื่อให้สื่อความหมายแล้ว ควรสังเกตลักษณะไวยากรณ์ (Syntax) ของแต่ละภาษาด้วยว่าเค้าเขียนกันอย่างไร ซึ่งถ้าเป็นภาษา Java จะเป็นลักษณะ Camel Case ซึ่งคืออะไรนั้น จะยกตัวอย่างให้ดูด้านล่างครับ
สำหรับลักษณะการตั้งชื่อตัวแปรที่ได้รับการนิยม และเป็นมาตรฐานสำหรับแต่ละภาษา เพื่อให้เหล่า Programmer ฝ่ายเดียวกันเขียนโปรแกรมได้คล้ายคลึงกัน มีดังนี้ครับ
Hungarian Notation
จะใช้ตัวย่อของชนิดตัวแปรขึ้นต้น โดยจะใช้ตัวอักษรตัวพิมพ์เล็กทั้งหมด ซึ่งตัวย่อจะถูกกำหนดไว้เป็นมาตรฐานเดียวกัน ทำให้การตั้งชื่อตัวแปรแบบ Hungarian Notation จะทำให้ Programmer อ่านโปรแกรมได้ง่ายขึ้น จากนั้นคำต่อๆไปตัวอักษรตัวแรกของคำจะเป็นตัวใหญ่
อักษรย่อของชนิดตัวแปร (Data Type)ตัวอย่างการตั้งชื่อตัวแปรแบบ Hungarian Notation : strName, iValuesz Pointer to first character of a zero terminated string (such as : szName )(http://forums.thaigamedevx.com/index.php?topic=77.20)
str string (such as : strName, strValue)
i Integer (iValue, iData)
n it is a number ( : nStatus)
ui, UINT unsigned integer ( uiInterval)
c Character (cSex, c_Sex)
w Word (unsigned short)
dw DWORD (unsigned long)
fn Function Pointer
d Double
by Byte
l Long
p Pointer
lp Long Pointer
lpstr Long Pointer to a String
h Handle (hInstance, hWnd)
m_ member of function (m_name, m_edit you can see more in MFC variables)
g_ Global variable
hwnd Window Handle
ภาษาที่นิยมใช้ : C, C++
Camel Case
เป็นการตั้งชื่อโดยกำหนดให้คำแรกเป็นตัวอักษรตัวเล็กทั้งหมด แต่ไม่ได้ใช้อักษรย่อ การตั้งชื่อแบบ Camel Case จะเป็นคำต่อกันทั้งหมด ซึ่งตัวอักษรตัวแรกของคำที่ 2 ขึ้นไป จะเป็นตัวใหญ่ (คำที่ 2 ขึ้นไปเหมือน Hungarian Notation)
ตัวอย่างการตั้งชื่อตัวแปรแบบ Camel Case : productPrice, summaryResult
ภาษาที่นิยมใช้ : Java
Pascal Case
การตั้งชื่อลักษณะนี้ ต่างจาก Camel Case ตรงที่จะใช้ตัวอักษรตัวแรกของทุกคำเป็นตัวใหญ่ทั้งหมด (ตัวแรกด้วย)
ตัวอย่างการตั้งชื่อตัวแปรแบบ Pascal Case : FirstName, LastName
ภาษาที่นิยมใช้ : C#, .NET
Upper Case
เป็นการตั้งชื่อโดยใช้ตัวอักษรตัวใหญ่ทั้งหมด ซึ่งมักจะใช้ตัวอักษรย่อ หากเขียนเป็น Upper Case แบบหลายๆคำแบบ Camel Case หรือ Pascal Case จะทำให้เกะกะตาเป็นอย่างมาก
ตัวอย่างการตั้งชื่อตัวแปรแบบ Upper Case : ID, PI
ภาษาที่นิยมใช้ :
Underscores
แทนที่จะแบ่งคำด้วยตัวอักษรตัวเล็กตัวใหญ่ (case sensitive) การตั้งชื่อแบบนี้จะใช้ _ (Underscore) แทน แต่การตั้งชื่อแบบนี้จะทำให้ชื่อตัวแปรยาวไปหน่อยครับ
ตัวอย่างการตั้งชื่อตัวแปรแบบ Underscores : my_variable
ภาษาที่นิยมใช้ : PHP
แหล่งข้อมูล :
http://www.unzeen.com/article/1342/ว่าด้วยมาตรฐานในการตั้งชื่อตัวแปร
thaioop.wordpress.com/2006/12/07/ตอน-17-หลักการตั้งชื่อในภ/
http://en.wikipedia.org/wiki/CamelCase
http://en.wikipedia.org/wiki/Hungarian_notation
http://c2.com/cgi/wiki?CamelCase
http://www.tizag.com/phpT/variable.php
Add a comment