Skill เบื้องต้นของ Programmer ตอนที่ 3: Write Code for another Coder
ผมมีประสบการณ์การเป็นที่ปรึกษา ของรุ่นน้อง เพื่อนๆ หลายๆ คนนะครับ
คุณเคย "ปวดหัว" กับการต้องอ่านโค้ดง่ายๆ ไหมครับ ?
คำตอบรู้ครับ ว่าโค้ดทำงานยังไง แต่โค้ดมัน "ไม่น่าอ่านเอาเสียเลย"
จนบางที ถ้าเจอโค้ดที่ซับซ้อนหน่อย ผมต้องเป็นคน "แก้ไข" เพื่อนั่งอ่านเสียเอง
เบื้องต้น สิ่งที่ควรทำ ตามหลักของ Readable Code สิ่งนี้เรียกว่า "Aesthetics"
โดยในที่นี้จะกล่าวถึงจังหวะการเว้นวรรค การใส่ Indent (soft tabs) ให้ Code
ลองดูโค้ดง่ายๆ 2 ภาพ ซ้ายและขวานะครับ
อันไหนน่าอ่านกว่ากัน ...
ผมเจออะไรแบบนี้ตั้งแต่น้องปี 1 ยันพี่ปีสูงๆ ...
นี่แค่โปรแกรมง่ายๆ ที่มองแว๊บเดียวก็รู้ว่ามันทำอะ ไรนะครับ
นึกภาพโปรแกรมที่ซับซ้อนกว่านี้ สัก 10 เท่าสิ :(
เรื่องของ "Aesthetics Coding" ยังมีอีกหลายข้อที่น่าสนใจนะครั บ
เช่น การจัดย่อหน้าให้ตรงกันของ Function ที่มี Argument หลายๆ ตัว (ยาวมากกว่า 1 บรรทัด)
นี่เป็นแค่เบื้องต้นเท่านั้น ...
Knowledge from Chapter 4: The Art of Readable Code.
เราเขียนโค้ดยังไงก็ตามนะครับ ถูก Syntax ยังไง คอมพิวเตอร์ก็อ่านออก
แต่ไม่ได้มีแต่ "คอมพิวเตอร์" เท่านั้นนะครับ ที่จะมาอ่านโค้ดของเรา :)
คุณเคย "ปวดหัว" กับการต้องอ่านโค้ดง่ายๆ ไหมครับ ?
คำตอบรู้ครับ ว่าโค้ดทำงานยังไง แต่โค้ดมัน "ไม่น่าอ่านเอาเสียเลย"
จนบางที ถ้าเจอโค้ดที่ซับซ้อนหน่อย ผมต้องเป็นคน "แก้ไข" เพื่อนั่งอ่านเสียเอง
เบื้องต้น สิ่งที่ควรทำ ตามหลักของ Readable Code สิ่งนี้เรียกว่า "Aesthetics"
โดยในที่นี้จะกล่าวถึงจังหวะการเว้นวรรค การใส่ Indent (soft tabs) ให้ Code
ลองดูโค้ดง่ายๆ 2 ภาพ ซ้ายและขวานะครับ
อันไหนน่าอ่านกว่ากัน ...
ผมเจออะไรแบบนี้ตั้งแต่น้องปี 1 ยันพี่ปีสูงๆ ...
นี่แค่โปรแกรมง่ายๆ ที่มองแว๊บเดียวก็รู้ว่ามันทำอะ
นึกภาพโปรแกรมที่ซับซ้อนกว่านี้
เรื่องของ "Aesthetics Coding" ยังมีอีกหลายข้อที่น่าสนใจนะครั
เช่น การจัดย่อหน้าให้ตรงกันของ Function ที่มี Argument หลายๆ ตัว (ยาวมากกว่า 1 บรรทัด)
นี่เป็นแค่เบื้องต้นเท่านั้น ...
Knowledge from Chapter 4: The Art of Readable Code.
เราเขียนโค้ดยังไงก็ตามนะครับ ถูก Syntax ยังไง คอมพิวเตอร์ก็อ่านออก
แต่ไม่ได้มีแต่ "คอมพิวเตอร์" เท่านั้นนะครับ ที่จะมาอ่านโค้ดของเรา :)
** เรื่องการใส่ Indent ให้กับ Code เนี่ยบางภาษาอาจจะต่างกันไปนะครับ
เช่น Python จะมีขนาด Indent เท่ากับ " " (4 white space) และภาษาส่วนใหญ่จะอยู่ที่ 4
ภาษาเท่าที่ผมเคยเขียนมาเนี่ย เจอแค่ Ruby นะครับที่ใช้ " " (2 white space)
"จงเขียนโค้ดเพื่อให้คนอ่าน และบังเอิญมันเอาไปใช้งานได้"
Write code for people to read, and occasionally for machine to execute.
via อาจารย์รวิทัต ภู่หลำ

พวก xml ต่างๆ ส่วนใหญ่เห็นแนะนำแค่ 2 นะ เพราะมันจะซ้อนกันเยอะๆ แล้วเปลืองที่
ReplyDelete