Screen Shot 2557-12-30 at 3.15.34 PM
เรื่องที่ 14 ที่นักพัฒนาควรรู้ และ เข้าใจก็คือ Code Layout Matters
หรือรูปแบบ code นั้น สำคัญไฉน ?

ปกติในการพัฒนา software นั้น บริษัท หรือ ทีมก็มักจะ

  • กำหนด Coding Standard ใช่หรือไม่
  • เราก็จะไม่ยอมให้ใครมาเขียน code ในรูปแบบ ที่ไม่ตรงกับสิ่งที่ตกลงกันไว้แล้ว ใช่หรือไม่ ?

แต่เราทำตามไหมนะ ?
ต้องทำตามสิ ว่าป่ะ !!

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

ดังนั้น ข้อตกลงเรื่อง Coding Standard เช่น รูปแบบของ code มันสำคัญมากๆ

แล้วเราในฐานนะนักพัฒนาล่ะ มีการกำหนดบ้างไหม ?
หรือว่าทำตามใจฉัน ?
หรือว่าทำตาม IDE ล่ะกัน ?

นักวิจัยพบว่า (มันว่างมากจริงๆ)

ส่วนใหญ่แล้ว นักพัฒนา software ใช้เวลาในการอ่าน code มากกว่าเขียน code นะ
เนื่องจากต้องทำอ่าน code เพื่อหาว่า จุดไหนที่เราจะเขียนเพิ่ม หรือ แก้ไข นั่นเอง
ดังนั้น ลองคิดดูสิว่า ถ้าเราสามารถลดเวลาในการอ่าน code ลงไป
น่าจะทำให้การเขียน code มีประสิทธิภาพดีขึ้นเยอะนะ

สิ่งที่ควรคำนึงในการเขียน code เพื่อให้อ่านง่าย ประกอบไปด้วย

1. Easy to scan หรือ ง่ายต่อการกวาดสายตาดูเร็วๆ

คนเรานั้นมักชอบ visual pattern matching
เนื่องจากมันช่วยทำให้เห็นว่า code ที่เราเขียนมานั้นมันอยู่ในรูปแบบเดียวกันหรือไม่
หรือว่า code มันเป็นไปตามสิ่งที่เราตกลงกันไว้หรือไม่

ในการตรวจสอบ code ว่าตรงตามที่ตกลงกันไว้หรือไม่
มักจะทำในขั้นตอนการ compile code นั่นเอง
มักจะตรวจสอบ code ดังนี้
รูปแบบของค่าคงที่ เช่น การตั้งชื่อต้องเป็นตัวอักษรพิมพ์ใหญ่ทั้งหมด
รูปแบบของ property หรือ field เช่น การตั้งชื่อต้องเป็น Camel case นะ ขึ้นต้นด้วยตัวอักษรพิมพ์เล็ก
รูปแบบของ private และ public method เป็นต้น

2. Expressive layout

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

โดยในทีมมักจะมีข้อตกลงร่วมกันเรื่องการจัดรูปแบบ code
และมักจะใช้เครื่องมืองช่วยจัดรูปแบบ code อย่างอัตโนมัติ

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

3. Compact format หรือ รูปแบบ code ที่สั้น กระชับ เข้าใจได้ง่าย

ถ้าเรามี code ที่มันยาวจนหน้าจอ
ถ้าเราต้องทำการเลื่อนหน้าจอลงมา เพื่ออ่าน code
ถ้าเรามี comment เยอะๆ สำหรับ method/function ที่มีการทำงานเยอะ หรือ code ยาวๆ
ถ้าเรามี whitespace หรือ จำนวน spacebar ที่แตกต่างกัน
ถ้า …

แต่ในปัจจุบันเรามี IDE ช่วยนะ แต่นั่นมันไม่สำคัญนะ
เพราะว่า เราต้องการเรื่องการจัดรูปแบบของ code
ไปเพื่อช่วยให้เข้าใจ code ได้ง่ายขึ้น
ไม่มีอะไรมากกว่านั้นเลยจริงๆ

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

แต่โชคไม่ดีเท่าไร

เนื่องจาก code ที่นักพัฒนา software เขียนขึ้นมานั้น
มันมักจะตรงข้ามเสมอนะสิ
มันแปลกดีนะครับ !!!