เห็นมีการพูดถึงเรื่องของการใช้ Tab และ Spacebar ใน code
ซึ่งในความเป็นจริงมันคือเรื่องของ Coding standard
ที่ทีมพัฒนาต้องตกลงร่วมกัน ว่าจะเดินไปในทิศทางไหน

โดยในปัจจุบันมีเอกสารหรือแหล่งอ้างอิงจำนวนมาก
จึงทำการสรุปมาไว้นิดหน่อย
มาเริ่มกันเลย

เรื่อง Coding Standard Guideline เป็นสิ่งสำคัญมาก ๆ

สิ่งที่นักพัฒนาต้องให้ความสำคัญของ Readability ของ code
เนื่องจากเราไม่ได้เขียน code เพื่อตัวเราเองเท่านั้น
แต่เพื่อให้คนอื่นอ่านและทำความเข้าใจได้ง่ายด้วย
ดังนั้นเรื่องของรูปแบบในการเขียน code
จำเป็นต้องเป็นไปในทิศทางเดียวกัน

โดยในปัจจุบันมี Guideline ต่าง ๆ มากมาย
ตัวอย่างเช่นในภาษา Java

ส่วนภาษาอื่น ๆ ก็เยอะเช่น

ในแต่ละตัวล้วนมีแนวทางของตัวเอง
ดังนั้นเราควรเลือกและตกลงร่วมกันซะ
ตัวอย่างเช่น

  • การใช้ Tab และ Indent
  • ขนาดความยาวของบรรทัด
  • การตั้งชื่อตัวแปร
  • การจัดการ Exception ต่าง ๆ

เมื่อค้นหาข้อมูลเพิ่มเติมพบว่า

จากงาน Github Data Challenge
ทำการสรุปวิเคราะห์ code จาก github ไว้อย่างน่าสนใจ
ซึ่งแยกออกตามภาษาโปรแกรม เช่น JavaScript, Java, Python, Scala, Ruby, C# และ PHP
มาดูตัวอย่างกันหน่อย

มาดูผลของ Tab vs. Spacebar ในแต่ละภาษากัน

tabs-spaces

มาดูรายละเอียดสำหรับภาษา Java กัน

เรื่องของ Space vs. Tab
จะอยู่ที่ 66% ต่อ 33% แสดงดังรูป

code-01

ต่อมาเรื่องของ block statement
ว่าด้วยเครื่องหมายปีกกาเปิดนั่นเอง

  • 58% อยู่ในบรรทัดเดียวกัน คั่นด้วย space เดียว
  • 37% อยู่ในบรรทัดใหม่
  • 5% อยู่ในบรรทัดเดียวกันแต่ไม่มี space คั่น

code-02

ต่อมาเรื่องความยาวต่อบรรทัด

code-03

การตั้งชื่อต้องมี prefix หรือไม่ ส่วนใหญ่ไม่มีนะ

code-04

 

ดังนั้นลองกลับมาถามตัวเราสิว่า รูปแบบของทีมเราเป็นอย่างไร ?
ได้ทำการพูดคุยตกลงร่วมกันหรือไม่ ? อย่างไร ?

สุดท้ายสำหรับชาว Golang บอกว่าใช้ go fmt สิ จะมาเถียงกันทำไม !!

ปิดท้ายด้วย Tab vs. Spacebar แบบฮา ๆ กันครับ

Reference Websites
https://github.com/outsideris/popularconvention
http://blog.takipi.com/tabs-vs-spaces-how-they-write-java-in-google-twitter-mozilla-and-pied-piper
http://www.businessinsider.com/google-silicon-valley-tabs-spaces-debate-2016-8