styleguide

Go Style (สไตล์การเขียน Go)

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

เกี่ยวกับ (About)

คู่มือสไตล์ Go (Go Style Guide) และเอกสารประกอบเหล่านี้ได้รวบรวมแนวทางปฏิบัติที่ดีที่สุดในปัจจุบัน เพื่อการเขียนโค้ด Go ให้ “อ่านง่าย” และ “ถูกต้องตามสำนวนภาษา (Idiomatic)” การปฏิบัติตามคู่มือนี้ไม่ได้บังคับแบบตายตัวและไม่ได้ครอบคลุมทุกเรื่อง แต่มีเจตนาเพื่อลดการคาดเดาในการเขียนโค้ด และช่วยให้ผู้เริ่มต้นหลีกเลี่ยงข้อผิดพลาดทั่วไปได้ นอกจากนี้ยังช่วยให้มาตรฐานการรีวิวโค้ด Go ภายใน Google เป็นไปในทิศทางเดียวกัน

เอกสาร ลิงก์ กลุ่มเป้าหมายหลัก [Normative] (เกณฑ์ปฏิบัติ) [Canonical] (มาตรฐานถาวร)
Style Guide (คู่มือสไตล์) ลิงก์ ทุกคน ใช่ ใช่
Style Decisions (การตัดสินใจเรื่องสไตล์) ลิงก์ Readability Mentors (ผู้ให้คำแนะนำ) ใช่ ไม่
Best Practices (แนวทางปฏิบัติที่ดีที่สุด) ลิงก์ ผู้ที่สนใจ ไม่ ไม่

เอกสารประกอบ (Documents)

  1. Style Guide (คู่มือสไตล์) วางรากฐานของสไตล์ Go ที่ Google เอกสารนี้ถือเป็น ข้อกำหนดหลัก และใช้เป็นพื้นฐานสำหรับคำแนะนำในเอกสารอื่นๆ

  2. Style Decisions (การตัดสินใจเรื่องสไตล์) เอกสารที่มีรายละเอียดมากขึ้น สรุปการตัดสินใจในจุดเฉพาะเจาะจงพร้อมเหตุผลประกอบ

    • เนื้อหาอาจเปลี่ยนแปลงได้ตามข้อมูลใหม่ ฟีเจอร์ภาษา หรือไลบรารีใหม่ๆ
    • โปรแกรมเมอร์ทั่วไปไม่จำเป็นต้องติดตามอัปเดตเอกสารนี้ตลอดเวลา
  3. Best Practices (แนวทางปฏิบัติที่ดีที่สุด) รวบรวมรูปแบบ (Patterns) ที่ผ่านการพิสูจน์แล้วว่าแก้ปัญหาได้ดี อ่านง่าย และทนทานต่อการบำรุงรักษา

    • ไม่ได้เป็นกฎข้อบังคับตายตัว (Canonical) แต่แนะนำให้ใช้เพื่อให้โค้ดมีความสม่ำเสมอ

เจตนาของเอกสารเหล่านี้ คือ:

เอกสารเหล่านี้ “ไม่ได้” มีเจตนาเพื่อ:

ข้อแนะนำ: ความสม่ำเสมอ (Consistency) เป็นเรื่องสำคัญ แต่คุณไม่จำเป็นต้องจู้จี้กับทุกจุดที่ผิดไปจากคู่มือ ให้เน้นเขียนโค้ดใหม่โดยใช้แนวทางปฏิบัติล่าสุด และค่อยๆ ปรับแก้โค้ดเก่าเมื่อมีโอกาส เรื่องสไตล์มีความเป็นส่วนตัวและต้องชั่งน้ำหนักเสมอ แต่การมีความเป็นระเบียบเหมือนกัน (Uniformity) นั้นมีคุณค่ามาก


คำนิยาม (Definitions)

คำศัพท์สำคัญที่ใช้ในเอกสารชุดนี้:


ข้อมูลอ้างอิงเพิ่มเติม (Additional references)

คู่มือนี้ถือว่าผู้อ่านมีความคุ้นเคยกับ Effective Go แล้ว ซึ่งเป็นพื้นฐานสำคัญของชุมชน Go

แหล่งข้อมูลภายนอกที่น่าสนใจ:

บทความเกี่ยวกับการทดสอบ (Testing):