ในการเขียนโปรแกรม โดยเฉพาะภาษาที่ใช้โครงสร้างแบบ Key-Value Pair เช่น PHP, Array ใน JavaScript หรือ Dict ใน Python คำถามหนึ่งที่นักพัฒนามักถกเถียงกันอยู่เสมอคือ “ควรเคาะ Space ให้เครื่องหมายชี้ (=> หรือ :) ตรงกันในแนวตั้งหรือไม่?”
บทความนี้จะพาไปรู้จักการจัดโค้ดทั้งสองรูปแบบ พร้อมเหตุผลว่าทำไมเทรนด์ยุคใหม่ถึงเริ่มเอนเอียงไปทางแบบสั้นกระชับมากกว่า
Vertical Alignment (การจัดระเบียบแนวตั้ง)
การจัดรูปแบบที่เว้นช่องว่าง (Whitespace) เพิ่มเติมด้านหน้าเครื่องหมาย เพื่อให้ลูกศรหรือเครื่องหมายเท่ากับเรียงตรงกันสวยงามในแนวตั้ง
// ตัวอย่าง Vertical Alignment
$userProfile = [
'id' => $id,
'username' => $username,
'email' => $email,
'description' => $description,
];
- ข้อดี:
- ดูเป็นระเบียบ สบายตา อ่านง่ายเมื่อกวาดสายตามอง Key และ Value Separator
- ข้อเสีย:
- เปลืองขนาดไฟล์โดยไม่จำเป็น: อย่าลืมว่า Space 1 ตัว = 1 Byte ยิ่งเคาะเว้นวรรคเยอะ ขนาดไฟล์โค้ดก็ยิ่งใหญ่ขึ้นโดยเปล่าประโยชน์
- ดูแลรักษาลำบาก: เมื่อมี Key ใหม่ที่ยาวกว่าเดิมเพิ่มเข้ามา คุณต้องตามไปเคาะ Space บรรทัดอื่น ๆ ใหม่ทั้งหมด
- Git Diff รกเกินจำเป็น: การแก้ไขเพียงบรรทัดเดียว อาจทำให้ Git แจ้งว่ามีการเปลี่ยนแปลง (Modified) ถึง 10 บรรทัด เพียงเพราะคุณเคาะ Space เพิ่มเพื่อจัดแถว
Standard Formatting / Unaligned (การจัดรูปแบบมาตรฐาน)
การเว้นวรรคเพียง 1 ช่องหลัง Key โดยไม่ต้องสนใจว่าเครื่องหมายด้านหลังจะตรงกับบรรทัดอื่นหรือไม่
// ตัวอย่าง Standard Formatting
$userProfile = [
'id' => $id,
'username' => $username,
'email' => $email,
'description' => $description,
];
ข้อดี:
- ประหยัดขนาดไฟล์: โค้ดกระชับ ไม่มีตัวอักษร Space ส่วนเกิน ช่วยลดขนาดไฟล์ลงได้
- แก้ไขรวดเร็ว: เพิ่ม ลด หรือพิมพ์แก้ไขได้ทันทีโดยไม่ต้องเสียเวลาเคาะ Space จัดแถว
- Clean Git History: แก้ไขบรรทัดไหน Git จะเห็น History เฉพาะบรรทัดนั้น ไม่กระทบส่วนอื่น
- ตรงตามมาตรฐานส่วนใหญ่: Linter และ Formatter ยุคใหม่ (เช่น Prettier, PHP-CS-Fixer หรือ PSR-12 Standard) มักกำหนดให้รูปแบบนี้เป็นค่าเริ่มต้น
ข้อเสีย:
- แถวของเครื่องหมายจะไม่ตรงกันในแนวตั้ง
สรุป: ควรเลือกใช้แบบไหน?
แม้ว่า Vertical Alignment จะดูประณีตกว่าในแง่สายตา แต่ในเชิงการทำงานจริงแบบทีม (Team Collaboration) และระบบ Version Control (Git) การใช้ Standard Formatting ('id' =>) ให้ผลลัพธ์ที่คล่องตัว ลดความขัดแย้งของโค้ด (Merge Conflicts) และดูแลรักษาในระยะยาวได้ง่ายกว่ามากครับ
การทำงานจริงมันต่างจากในตำราตรงนี้แหละครับ—ในตำราหรือบทความทั่ว ๆ ไปมักจะโฟกัสแค่เรื่อง “ความสวยงาม” แต่คนทำระบบจริง คนดูแลโค้ดจริง ต้องเจอกับเรื่อง Git Diff รกเวลา Code Review, เสียเวลาจัด Format, และเรื่อง File Size/Memory Overheads จากช่องว่างไร้สาระพวกนั้น
การปรับวิธีคิดให้เน้นความสมเหตุสมผลในการทำงานจริง (Pragmatic Developer Mindset) มากกว่าแค่นึกถึงทฤษฎีในตำราจะช่วยให้ทำงานได้ง่ายขึ้น แถมประหยัด token ai
อ่านเพิ่มเติม