มีคำถามว่าทำไมเวลาที่เรานั้งเขียน code แล้วต้องมี Standard ด้วย เพราะน่าจะใครสะดวกยังไงก็น่าจะเขียนยังงั้น น่าจะเน้นไปที่ output และ Algorithm มากกว่า สำหรับผมเองก็ต้องตอบว่าส่วนหนึ่ง การเขียน code ที่ดีนั้นต้องให้คนอื่นอ่านได้ง่าย และใช้เวลาในการแก้ไข ปรับปรุง ทำความเข้าใจได้อย่างรวดเร็ว จึงจำเป็นมีมาตรฐานเข้ามาควบคุม แต่ก็ยังมีคำถามขึ้นมาอีก แล้วอะไรล่ะที่เรียกว่ามาตรฐาน ตรงนี้เองจึ่งอยากค้นคว้าและนำมาเขียน Blog ตามความคิดของตัวเอง และยินดีน้อมรับคำแนะนำจากผู้รู้
การตั้งชื่อ หรือ การประกาศตัวแปร (Naming Conventions)
- ควรจะตั้งชื่อแบบ Camel Case หรือ Pascal Case เช่น
string CustomerName //Pascal Case
string customerName //Camel Case - ควรจะหลักเลี่ยงการตั้งชื่อที่ประกอบไปด้วยตัวใหญ่ทั้งหมด หรือ ตัวเล็กทั้งหมด หรือ ตัวอักษรตัวเดียว
- ไม่ควรประกาศตัวแปรที่เหมือนกับชนิดข้อมูล (namespace,class,method,property ..)
- ไม่ควรตั้งชื่อตัวเลขนำหน้าชื่อ เช่น string 1customer
- ควรตั้งชื่อที่สื่อความหมาย
- ไม่ควรใช้ Hungarian Notation เช่น string strName หรือ int iCount
- หลีกเลี่ยงการตั้งชื่อที่เป็นตัวย่อจำนวนมาก หรือ ตั้งชื่อที่มีขนาดยาวเกินกว่าที่จะรับได้
- ถ้าหากจำเป็นต้องตั้งชื่อเป็นตัวย่อ ควรตั้งเป็นตัวพิมพ์ใหญ่ ถ้ามีขนาดแค่ 2 ตัวอักษร ถ้ามากกว่านั้นให้ตั้งชื่อแบบ Pascal Case
- ไม่ควรตั้งชื่อเป็นคำสงวน (C# Reserved Word)
- ไม่ควรตั้งชื่อด้วยคำที่ซ้ำซากไม่มีความหมาย เช่น
public enum ColorsEnum {…}
public class CVehicle {…}
public struct RectangleStruct {…} - ไม่ควรมีคำที่เป็น parent class ในชื่อ property name เช่น
Customer.Name ไม่ควรใช้ Customer.CustomerName - พยายามตั้งตัวแปรที่เป็น Boolean ด้วยคำว่า "Is" , "Can" หรือ "Has"
- ถ้าเป็นเรื่องที่เกียวกับการคำนวณ ควรตั้งชื่อเป็น "Min" , "Max", "Average" หรือ ตามความเหมา่ะสม
Name Usage & Syntax
