/ 365วันแห่งโปรแกรม

[365 วันแห่งโปรแกรม #day3] Indent Style

วันที่สามของ ‪#‎365วันแห่งโปรแกรม‬ วันนี้ขอเสนอเรื่อง Indent Style


ความเดิมตอนที่แล้วเราพูดถึงเรื่องการทำ Indent แต่จริงๆ แล้วมันยังไม่จบเพียงแค่นั้น เพราะเรื่องของ Indent มันจะเกี่ยวกับเรื่อง Code Style ด้วย เราอาจจะรู้ว่าเราใช้ Indent = 4 เคาะ แต่เราก็อาจจะไม่รู้ว่าเมื่อไหร่ถึงจะใส่ Indent แล้วไหนจะเรื่องการวาง { Braces } และ ( Parentheses ) อีก

Indent Style นั้นก็มีอยู่หลายแบบ แล้วแต่ว่าใครจะชอบของสำนักไหน เช่น

ใน Kernel style บอกไว้ว่า ให้ใช้ Indent = 8 เคาะ ทุกอย่างที่อยู่ใน Block ต้องมี Indent มากกว่า Block นั้น 1 ระดับ และ { ของฟังก์ชันต่างๆ ให้วางไว้ใต้ function header แต่ถ้าเป็น { ของ if หรืออะไรก็ตามที่ไม่ใช้ function ให้วางไว้หลัง statement นั้นๆ โดยเคาะ 1 ครั้งก่อนวาง

อ่านแล้วหลายๆ คนก็มีคำถามว่าทำไมใน Kernel style ถึงมีข้อยกเว้นในการวาง { ของฟังก์ชัน แล้วการใช้ Indent = 8 เคาะ นั้นไม่มากไปหรือ ผมเองก็คงตอบอะไรไม่ได้เพราะว่ามันเป็นธรรมเนียมหรือความเชื่อของผู้กำหนด เอาเป็นว่าวิธีที่ดีที่สุดในการเลือกใช้ Code Style คือการทำตามธรรมเนียมของเจ้าบ้าน เช่น ถ้าคุณเขียน Java ก็ทำตาม Guidelines ของ Java ถ้าคุณใช้ Library ของใครก็ทำตามธรรมเนียมของคนนั้น แต่ถ้าทำโปรเจคใหม่แล้วหาเอกสารอ้างอิงไม่ได้หรือคิดว่ารับไม่ได้กับธรรมเนียมนั้น ก็ขอให้ตกลงกันในทีมเอาครับว่าจะใช้แบบไหนดี

เรื่องเหล่านี้มันอาจจะดูไร้สาระ แต่จริงๆแล้วมนสำคัญมาก เพราะโปรแกรมเมอร์แต่ละคนไม่ได้เรียนมาจากที่เดียวกัน ไม่ได้มีความเชื่อเดียวกัน ลองคิดูครับถ้าเกิดเราต้องแก้โค้ดในโปรเจ็คที่มีขนาดใหญ่เกินกว่าหมื่นบรรทัด ซึ่งสร้างโดยโปรแแกรมเมอร์นับสิบคน และเขียนกันคนละ Style จะเป็นยังไง มันอาจจะไม่ได้ painful มาก แต่ถ้าทุกคนเขียนแบบเดียวกันมันก็น่าจะใช้แรงน้อยลงเวลาไล่อ่าน ตกลงกันนะครับว่าจะเอายังไง จะได้ไม่เป็นภาระของลูกหลาน

‪#‎day3‬ #365วันแห่งโปรแกรม ‪#‎โครงการ365วันแห่ง‬...


สำหรับท่านที่สนใจเข้าไปศึกษาต่อได้ที่

Kernel style

Indent style on Wiki

Android code style