PlusMagi's Blog By Pitt Phunsanit Backend,Database Coding Styles ด้วย .editorconfig

Coding Styles ด้วย .editorconfig

ในโลกของการพัฒนาซอฟต์แวร์ขนาดใหญ่ โดยเฉพาะอย่างยิ่งเมื่อต้องทำงานกับฐานข้อมูล PostgreSQL ที่มีความซับซ้อน การรักษามาตรฐานของรูปแบบโค้ด (Coding Style) ให้เป็นหนึ่งเดียวกันถือเป็นหัวใจสำคัญของการทำงานร่วมกันในทีม แม้ว่าโค้ด SQL จะดูเรียบง่าย แต่ความไม่สม่ำเสมอในการเว้นวรรค การเยื้อง (Indentation) หรือการขึ้นบรรทัดใหม่ ก็สามารถลดทอนความสามารถในการอ่าน (Readability) และเพิ่มโอกาสเกิดข้อผิดพลาดได้

นี่คือจุดที่ไฟล์ .editorconfig เข้ามามีบทบาทสำคัญ มันคือเครื่องมือที่ช่วยกำหนดกฎเกณฑ์การจัดรูปแบบโค้ดในระดับโปรเจกต์ ทำให้มั่นใจได้ว่าไม่ว่าสมาชิกในทีมจะใช้ Code Editor หรือ IDE ตัวใดก็ตาม โค้ด PostgreSQL ที่เขียนออกมาจะมีรูปแบบที่สอดคล้องกันโดยอัตโนมัติ

.editorconfig คืออะไร และทำไมต้องใช้กับ PostgreSQL?

.editorconfig คือไฟล์กำหนดค่าขนาดเล็กที่วางไว้ใน Root Directory ของโปรเจกต์ มันไม่ได้เป็นส่วนหนึ่งของไวยากรณ์ภาษา SQL โดยตรง แต่เป็นไฟล์ที่ Code Editor ต่างๆ (เช่น VS Code, PyCharm, Sublime Text) จะอ่านเพื่อทำความเข้าใจว่าควรจัดรูปแบบไฟล์ประเภทใดและควรจัดรูปแบบอย่างไร

ประโยชน์หลักในการพัฒนา PostgreSQL

  1. Consistency (ความสม่ำเสมอ): ทำให้โค้ด SQL ทั้งหมด ไม่ว่าจะเป็น Stored Procedures, Functions, หรือ Queries ทั่วไป มีการเว้นวรรคและเยื้องที่เหมือนกันหมด
  2. IDE Agnostic: ไม่ต้องเสียเวลาให้ Developer แต่ละคนไปตั้งค่า Preference ใน IDE ของตัวเอง เพียงแค่ Commit ไฟล์นี้เข้าไปใน Git ทุกคนก็จะได้รับมาตรฐานเดียวกัน
  3. ลดความขัดแย้งเรื่องรูปแบบ: แก้ปัญหาคลาสสิกอย่างการถกเถียงเรื่องการใช้ Tab หรือ Space ในการเยื้องโค้ด SQL ที่ซับซ้อน

โครงสร้างและคำสั่งที่ใช้สำหรับ SQL Coding Styles

ไฟล์ .editorconfig จะใช้ชุดคำสั่งที่เรียบง่าย แต่ทรงพลังในการบังคับใช้กฎเกณฑ์ต่างๆ สำหรับโปรเจกต์ PostgreSQL ของคุณ โดยทั่วไปแล้วเราจะใช้ Wildcards เพื่อระบุประเภทของไฟล์ (เช่น *.sql) และกำหนดกฎเกณฑ์เฉพาะสำหรับประเภทนั้นๆ

คำสั่งที่สำคัญที่สุดที่เกี่ยวข้องกับการจัดรูปแบบโค้ด SQL ได้แก่:

  • root = true: ระบุว่านี่คือไฟล์ตั้งค่าหลักของโปรเจกต์
  • [*]: ใช้กำหนดกฎเกณฑ์ทั่วไปสำหรับทุกไฟล์
  • indent_style = space: บังคับให้ใช้ช่องว่างแทน Tab
  • indent_size = 4: กำหนดให้การเยื้องแต่ละระดับใช้ช่องว่าง 4 ตัว

ตัวอย่างไฟล์ .editorconfig สำหรับโปรเจกต์ PostgreSQL

ตัวอย่างนี้แสดงการกำหนดให้ไฟล์ทั้งหมดในโปรเจกต์ใช้การเยื้อง 4 ช่องว่าง และกำหนดให้ไฟล์ SQL ใช้กฎเกณฑ์ที่เข้มงวดเป็นพิเศษ:

Plain Text

Plain Text

# กำหนดค่าพื้นฐานของโปรเจกต์ (Root) --------------------------------
root = true

# กำหนดค่าทั่วไปสำหรับทุกไฟล์ (*)
[*.{sql,sqlc,sqlx}]
indent_style = space
indent_size = 4

# กำหนดค่าเพิ่มเติมสำหรับไฟล์ SQL โดยเฉพาะ
[*.sql]
trim_trailing_whitespace = true
insert_final_newline = true

บทสรุป

การใช้ .editorconfig ไม่ใช่แค่เรื่องของความสวยงาม แต่เป็นส่วนหนึ่งของการจัดการคุณภาพโค้ด (Code Quality Management) สำหรับทีมที่พัฒนา PostgreSQL การบังคับใช้ Coding Style ที่สม่ำเสมอตั้งแต่ต้นทาง ช่วยลดภาระในการตรวจสอบโค้ด (Code Review) และทำให้ทุกคนสามารถโฟกัสไปที่ตรรกะทางธุรกิจ (Business Logic) ของ Query แทนที่จะต้องมานั่งแก้ไขปัญหาเรื่องการเว้นวรรคที่ไม่ตรงกัน ทำให้การบำรุงรักษาฐานข้อมูลขนาดใหญ่เป็นไปอย่างราบรื่นและมีประสิทธิภาพสูงสุด