ศิลปะการตั้งชื่อภาค 3
แปลและย่อมาจากหนังสือ Clean Code ครับเกี่ยวกับ Naming Convention ต่อจากภาคแรกครับ และภาคที่สองเรามาต่อกันด้วยเรื่อง
Avoid Encodings
ไม่ใชเรื่องการเข้ารหัสนะครับแต่การ encoding นี้คือการเพิ่ม information เข้าไปในการประกาศตัวแปรเช่นประเภทของข้อมูล scope ของตัวแปรที่จะถูกใช้งานเนื่องการทำ Encoding จะส่งผลให้เราต้องสร้างเอกสารสำหรับอธิบายมาตรฐานการเเขียนในทีมของเราอีกทำให้เสียเวลามาก เพราะลำพังเขียนโปรแกรมก็ลำบากอยู่แล้วยังจะต้องมานั่งอ่านเอกสารการตั้งชื่อแบบแปลกๆอีก ตัวอย่างของการทำ Encoding แบบคลาสสิคอย่าง Hungarion Notation สำหรับโปรแกรมเมอร์รุ่นใหม่อาจไม่คุ้นเรื่องนี้วันนี้เรามาฟังนิทานกันหน่อย
Hungarian Notation (HN)
HN เป็นมาตรฐานการตั้งชื่อในสมัยเก่าโดยจะใช้ชื่อของตัวแปรเป็นตัวระบุ type หรือจุดประสงค์การใช้งานตัวแปรนั้นๆ โดยที่ตัวมันเองถูกออกแบบมาให้ทำงานโดยไม่ผูกติดกับภาษาใดๆ แต่การทำ HN ไปใช้อย่างหนักหน่วงนั้นเกิดขึ้นกับการเขียนโปรแกรมด้วยภาษา BCPL ซึ่งเป็นภาษาที่ไม่มี Type ทำให้โปรแกรมเมอร์ต้องจำกันเองว่าตัวแปรแต่ละตัวเป็น Type อะไรและถูกนำไปใช้งานเพื่ออะไรบ้างโดยปกติแล้วตัวแปรจะมีเป็นกลุ่มคำที่คำชุดแรกจะเป็นตัวอักษรตัวเล็กที่เป็นตัวอธิบาย type ของตัวแปรหรือเป็นจุดประสงค์การใช้งานของตัวแปร หลังจากนั้นจะตามด้วยชื่อของตัวแปรที่โปรแกรมเมอร์แต่ละคนจะเลือกใช้ ซึ่งตามปกติคำที่สองจะใช้ตัวอกษรแรกเป็นตัวใหญ่(Capital) ซึ่งการคั่นคำด้วยตัวอักษรตัวใหญ่นี้เราเรียกว่า CamelCase
lAccountNum : variable is a long integer ("l");
arru8NumberList : variable is an array of unsigned 8-bit integers ("arru8");
szName : variable is a zero-terminated string ("sz"); this was one of Simonyi's original suggested prefixes.