styleguide

Go Style Guide (คู่มือสไตล์ Go)

ภาพรวม คู่มือหลัก การตัดสินใจ แนวทางปฏิบัติที่ดีที่สุด

หมายเหตุ: เอกสารนี้เป็นส่วนหนึ่งของชุดเอกสาร Go Style ของ Google ถือเป็น เกณฑ์ปฏิบัติ (Normative) และ มาตรฐานถาวร (Canonical) ที่ต้องปฏิบัติตาม

หลักการของสไตล์ (Style Principles)

หลักการสำคัญในการเขียนโค้ด Go ให้อ่านง่าย เรียงตามลำดับความสำคัญจากมากไปน้อย มีดังนี้:

  1. ความชัดเจน (Clarity): ผู้อ่านต้องเข้าใจจุดประสงค์และเหตุผลของโค้ดได้อย่างชัดเจน
  2. ความเรียบง่าย (Simplicity): โค้ดควรบรรลุเป้าหมายด้วยวิธีที่ง่ายที่สุดเท่าที่จะเป็นไปได้
  3. ความกระชับ (Concision): โค้ดควรมีเนื้อหาสาระมากและมีส่วนรบกวนน้อย (High signal-to-noise ratio)
  4. การดูแลรักษา (Maintainability): โค้ดต้องเขียนให้ดูแลรักษาและแก้ไขได้ง่าย
  5. ความสม่ำเสมอ (Consistency): โค้ดควรสอดคล้องกับมาตรฐานของ Codebase โดยรวม

1. ความชัดเจน (Clarity)

หัวใจสำคัญคือการเขียนเพื่อให้ ผู้อ่าน เข้าใจ ไม่ใช่เพื่อให้ผู้เขียนเขียนง่าย ความชัดเจนแบ่งเป็น 2 ส่วน:

2. ความเรียบง่าย (Simplicity)

โค้ดที่เรียบง่ายคือโค้ดที่อ่านจากบนลงล่างได้เข้าใจง่าย ไม่ซ่อนกลไก หรือมีการสร้าง Abstraction ที่ไม่จำเป็น

กลไกที่น้อยที่สุด (Least mechanism)

หากมีหลายวิธีในการทำสิ่งเดียวกัน ให้เลือกวิธีที่ใช้เครื่องมือพื้นฐานที่สุดก่อน:

  1. ใช้โครงสร้างภาษาหลัก (Slice, Map, Channel, Loop)
  2. หากไม่พอ ให้ใช้ Standard Library
  3. พิจารณา Library ขององค์กร ก่อนจะนำเข้า Dependency ภายนอกใหม่ๆ

3. ความกระชับ (Concision)

เน้นเนื้อหา ลดสิ่งรบกวน เช่น โค้ดที่ซ้ำซ้อน หรือ Syntax ที่เกินจำเป็น

4. การดูแลรักษา (Maintainability)

โค้ดถูกแก้ไขบ่อยกว่าถูกเขียนใหม่ โค้ดที่ดูแลง่ายต้อง:

5. ความสม่ำเสมอ (Consistency)

ความสม่ำเสมอภายในแพ็กเกจเดียวกันสำคัญที่สุด อย่างไรก็ตาม ความสม่ำเสมอไม่ควรถูกใช้เพื่อลบล้างหลักการข้ออื่น (เช่น ความชัดเจน)


แนวทางปฏิบัติหลัก (Core guidelines)

กฎเหล่านี้คือสิ่งที่โค้ด Go ทั้งหมดต้องปฏิบัติตาม:

การจัดรูปแบบ (Formatting)

การใช้ตัวพิมพ์ (MixedCaps)

ความยาวบรรทัด (Line length)

การตั้งชื่อ (Naming)

ความสม่ำเสมอเฉพาะที่ (Local consistency)