มาตรฐานการตั้งชื่อตัวแปร

หัวข้อนี้อาจทำให้หลายคนสงสัยว่า ผมเขียนขึ้นมาทำไม หลายๆคนที่ได้เรียนวิชา 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 อ่านโปรแกรมได้ง่ายขึ้น จากนั้นคำต่อๆไปตัวอักษรตัวแรกของคำจะเป็นตัวใหญ่
อักษรย่อของชนิดตัวแปร (Data Type)
sz             Pointer to first character of a zero terminated string (such as : szName )
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
(http://forums.thaigamedevx.com/index.php?topic=77.20
ตัวอย่างการตั้งชื่อตัวแปรแบบ Hungarian Notation : strName, iValue
ภาษาที่นิยมใช้ : 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

Facebook Comment

Popular post of 7 days

[Android] เปิดเครื่องไม่ได้ โลโก้ค้าง (Boot Loop)

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ