본문으로 건너뛰기

เนื้อหาภาษาไทย / 태국어 콘텐츠

시스템 가이드 검수 완료된 콘텐츠

Clean Code: หลักการตั้งชื่อที่ดี

บทความนี้เน้นย้ำถึงความสำคัญของการตั้งชื่อที่ดีในการเขียน Clean Code โดยอธิบายว่าชื่อที่ดีควรสื่อความหมาย, หลีกเลี่ยงคำย่อ, สอดคล้องกับ Domain, มีรูปแบบที่สอดคล...

Clean Code: หลักการตั้งชื่อที่ดี

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

ทำไมการตั้งชื่อถึงสำคัญ?

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

การตั้งชื่อที่ดีจะช่วยให้:

  • โค้ดอ่านง่ายขึ้น: เมื่อชื่อสื่อความหมาย เราจะเข้าใจได้ทันทีว่าตัวแปรนั้นเก็บอะไร, ฟังก์ชันนั้นทำอะไร
  • ลดความซับซ้อน: ชื่อที่ดีจะช่วยให้เราไม่ต้องเสียเวลาตีความว่าโค้ดส่วนนั้นทำงานอย่างไร
  • ลดโอกาสเกิด Bug: เมื่อเข้าใจโค้ดได้ง่ายขึ้น เราก็จะสามารถตรวจจับ Bug ได้ง่ายขึ้น
  • เพิ่มความสามารถในการบำรุงรักษา: เมื่อโค้ดอ่านง่ายและเข้าใจง่าย การแก้ไขหรือปรับปรุงโค้ดก็จะทำได้ง่ายขึ้น

หลักการตั้งชื่อที่ดี

ต่อไปนี้เป็นหลักการพื้นฐานในการตั้งชื่อที่ดีที่เราควรนำไปใช้:

1. ชื่อที่สื่อความหมาย

หลักการที่สำคัญที่สุดคือการตั้งชื่อที่สื่อความหมายให้มากที่สุด ชื่อควรบอกให้เราทราบว่าตัวแปรนั้นเก็บอะไร, ฟังก์ชันนั้นทำอะไร, หรือคลาสนั้นมีหน้าที่อะไร

ตัวอย่างที่ไม่ดี:

$d; // วันที่
$u; // ชื่อผู้ใช้
function processData($data) { ... } // ประมวลผลข้อมูล

จากตัวอย่างข้างต้น เราไม่สามารถบอกได้เลยว่า $d คือวันที่อะไร, $u คือชื่อผู้ใช้แบบไหน, หรือ processData() ประมวลผลข้อมูลอะไรบ้าง

ตัวอย่างที่ดี:

$orderDate; // วันที่สั่งซื้อ
$username; // ชื่อผู้ใช้
function processOrderData($orderData) { ... } // ประมวลผลข้อมูลการสั่งซื้อ

จากตัวอย่างนี้ เราสามารถเข้าใจได้ทันทีว่า $orderDate คือวันที่สั่งซื้อ, $username คือชื่อผู้ใช้, และ processOrderData() ประมวลผลข้อมูลการสั่งซื้อ

2. หลีกเลี่ยงชื่อย่อ

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

ตัวอย่างที่ไม่ดี:

$usr; // ผู้ใช้
$addr; // ที่อยู่
$cnt; // จำนวน

ตัวอย่างที่ดี:

$user; // ผู้ใช้
$address; // ที่อยู่
$count; // จำนวน

ถ้าจำเป็นต้องใช้ชื่อย่อจริงๆ ให้ใช้เฉพาะชื่อย่อที่เป็นที่รู้จักกันดีในวงกว้างเท่านั้น เช่น id (identifier), url (Uniform Resource Locator), html (HyperText Markup Language)

3. ใช้ชื่อที่สอดคล้องกับ Domain

ถ้าโปรเจกต์ของเราเกี่ยวข้องกับ Domain เฉพาะ (เช่น การเงิน, การแพทย์, การขนส่ง) เราควรใช้ชื่อที่สอดคล้องกับ Domain นั้นๆ เพื่อให้โค้ดของเราสื่อความหมายมากยิ่งขึ้นสำหรับคนที่ทำงานใน Domain นั้น

ตัวอย่าง:

สมมติว่าเรากำลังพัฒนาโปรแกรมสำหรับจัดการข้อมูลลูกค้าในธุรกิจค้าปลีก เราอาจจะใช้ชื่อเช่น customerId, productName, orderTotal แทนที่จะใช้ชื่อทั่วไป เช่น id, name, total

การใช้ชื่อที่สอดคล้องกับ Domain จะช่วยให้คนที่ทำงานใน Domain นั้นๆ เข้าใจโค้ดของเราได้ง่ายขึ้น และลดโอกาสในการตีความผิดพลาด

4. รูปแบบการตั้งชื่อ (Naming Conventions)

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

รูปแบบการตั้งชื่อที่นิยมใช้ใน PHP:

  • ตัวแปร: ใช้ camelCase (เช่น $firstName, $lastName)
  • ฟังก์ชัน: ใช้ camelCase (เช่น getUserName(), calculateTotal())
  • คลาส: ใช้ PascalCase (เช่น User, Product)
  • ค่าคงที่: ใช้ UPPER_SNAKE_CASE (เช่น MAX_VALUE, DEFAULT_TIMEOUT)

ตัวอย่าง:

class User {
    private $firstName;
    private $lastName;

    public function getFullName() {
        return $this->firstName . ' ' . $this->lastName;
    }
}

const MAX_USERS = 100;

5. ความยาวของชื่อ

ชื่อควรมีความยาวที่เหมาะสม ไม่สั้นจนเกินไปจนไม่สื่อความหมาย และไม่ยาวจนเกินไปจนอ่านยาก โดยทั่วไปแล้ว ชื่อควรมีความยาวประมาณ 1-3 คำ

ตัวอย่างที่ไม่ดี:

$veryLongVariableNameThatIsHardToRead; // ยาวเกินไป
$x; // สั้นเกินไป

ตัวอย่างที่ดี:

$customerName;
$orderTotal;

ตัวอย่างเพิ่มเติม

ลองดูตัวอย่างต่อไปนี้เพื่อทำความเข้าใจหลักการตั้งชื่อให้มากขึ้น:

ตัวอย่างที่ไม่ดี:

function calc($a, $b) {
    return $a + $b;
}

$res = calc(5, 10);

ตัวอย่างที่ดี:

function calculateSum($number1, $number2) {
    return $number1 + $number2;
}

$sum = calculateSum(5, 10);

จากตัวอย่างนี้ เราจะเห็นได้ว่าการตั้งชื่อที่ดีช่วยให้โค้ดอ่านง่ายและเข้าใจง่ายขึ้นอย่างมาก

สรุป

การตั้งชื่อที่ดีเป็นสิ่งสำคัญอย่างยิ่งในการเขียน Clean Code การตั้งชื่อที่สื่อความหมาย, หลีกเลี่ยงชื่อย่อ, ใช้ชื่อที่สอดคล้องกับ Domain, ใช้รูปแบบการตั้งชื่อที่สอดคล้องกัน และมีความยาวที่เหมาะสม จะช่วยให้โค้ดของเราอ่านง่าย, ลดความซับซ้อน, ลดโอกาสเกิด Bug และเพิ่มความสามารถในการบำรุงรักษา

ในบทถัดไป เราจะมาเรียนรู้เกี่ยวกับหลักการ Clean Code ในส่วนของฟังก์ชัน ว่าฟังก์ชันที่ดีควรมีลักษณะอย่างไร และเราจะเขียนฟังก์ชันให้สะอาดและอ่านง่ายได้อย่างไร

Office.in.th Custom Service

이 구조를 바탕으로 시스템을 개발하거나 맞춤 변경하고 싶으신가요?

Office.in.th는 엔터프라이즈 웹 애플리케이션, API 연동, 공공/민간 업무 관리 시스템을 설계·개발하며 장기 지원을 제공합니다.

소프트웨어 개발 서비스 보기