Code Convention คืออะไร ทำไมถึงสำคัญกับทีม

what is code convention background

เพื่อนๆเคยสงสัยกันมั้ยว่าทำไมโค้ดที่คนเก่งๆเขียนมันออกมาหน้าตาคล้ายๆกัน เขารู้ได้ยังไงว่าต้องเขียนแบบนี้

ผมเคยผ่านช่วงแรกที่ในทีมไม่มีกำหนดเรื่องนี้ ก็ได้แต่เขียนตามๆคนอื่น 55+ แบบไม่รู้ว่าเขียนแบบนี้เพราะอะไร จะเขียนตามสไตล์ใครดีแต่ละคนไม่เหมือนกันอีกอ่าว

วันนี้เลยจะมาแชร์จากสิ่งที่ผมรู้ ว่าจริงๆแล้วมีมีแนวทางของมันอยู่ มาดูกัน

Code Style คืออะไร

example of two people code style
การเขียนโค้ดสองสไตล์ ขอบคุณไอเดียภาพจาก 9gag

Code Style คือ แนวทาง ในการจัด format โค้ดว่าควรจัด style ไหน อย่างเช่น

  • เว้นวรรคตอนไหนบ้าง
  • ชื่อขึ้นต้นใช้ตัวใหญ่หรือเล็ก
  • เคาะบรรทัดดีมั้ย

บอกตรงนี้ก่อนเลยว่า ไม่มีอันไหนถูกผิดนะคับ 😆

Code Style & Code Convention

เราเรียกมันได้หลายอย่าง Coding Style, Coding Convention ซึ่งมีหน้าที่เดียวกันคือ

การจัด format ให้ดูสวยสบายตา ถูกใจคนอ่านอย่างเราๆ

สาเหตุที่อ่านสบายตาเพราะ สมองคนเราสามารถอ่าน code ที่ format เหมือนกันได้เร็วกว่าเยอะ

ซึ่งตอนทำงานจริงจะเขียนกฎขึ้นเองเลย หรือเลือกใช้ของคนอื่น ได้ทั้งนั้น แต่หลังจากทุกคนตกลงกันได้แล้ว มันก็จะกลายเป็น code convention ที่ทุกคนต้องทำตาม

Basic Guideline

บางภาษาเขาให้ Starter Kit มาเลยว่าภาษาเขาควรเขียนประมาณไหน ส่วนถ้าไม่มีก็ไม่เป็นไร community dev ใหญ่มาก เกือบทุกภาษามีกลุ่มคนใจดีจากทั่วโลกคิดมาให้เรียบร้อย 😍

ตัวอย่างตามภาษายอดฮิต

ของภาษาอื่นๆ ลอง search ใน google ด้วยชื่อภาษา ตามด้วย style guide หรือ convention เลยคับ เช่น “JavaScript Style Guide”, “JavaScript Convention”

example code of should and should not
ตัวอย่างที่ควร และ ไม่ควร ที่หลายภาษามักจะจัด format คล้ายๆกัน

ซึ่งหลักๆที่ผมเห็นจะมีหมวดหมู่ประมาณนี้คร่าวๆ

  • การเว้นช่องว่างระหว่างตัวอักษร
  • การตั้งชื่อ (case ต่างๆ เช่น camel case, snake case)
  • ความห่าง (Indentation)
  • การเขียนคอมเม้น
  • การประกาศตัวแปร
  • จำนวนบรรทัด และ คอลั่มน์

Benefit of Code Conventions

dev อย่างเราๆต้องใช้บ่อยเลย เพราะเป็น 1 วิธีในการเขียน code ให้ clean และมี quality และ ทำให้เราสื่อสารกับคนอื่น (ผ่านโค้ด) ได้ดีขึ้นมากกๆ

นอกจากเรื่องความสวยและความสะอาดตาของ code แล้ว ยังมีข้อดีอื่นๆคือ

  • ทุกคนเขียนเหมือนกันหมด ทำให้แก้ไขอะไรง่ายขึ้นเยอะ
  • อ่านง่ายขึ้น อันนี้แน่นอน
  • เข้าใจตรงกัน เมื่อคนใหม่มาเขียนต่อ
  • professional
  • ลด technical dept
  • เก่งขึ้น แค่เขียนเหมือนคนเก่งๆ เราก็เก่งขึ้นนิดนึงแล้วว 55+

ยิ่งทีมเรามีคนเยอะเท่าไหร่เรื่องนี้จะยิ่งสำคัญมากขึ้นตามเลย

เพราะเวลาทุกคนเขียนสไตล์เหมือนๆกัน ก็คือ code base ที่มีระเบียบนั่นเอง ซึ่งคนเดียวทำไม่ได้แน่นอน ต้องอาศัยทุกคนช่วยกัน ✌️

Software Engineer เก่งๆหลายคนบอกว่า code ที่ดีควรจะอ่านทุกหน้าแล้วเหมือน มีคนเขียนคนเดียว (คือโค้ดน้อยเหมือนไม่มีใครทำหรอพี่? 🤣 ผ่าม)

แต่ส่วนตัวผมว่าการที่ทุกคนจะเขียนเหมือนกันเป๊ะๆ 100% เอาเข้าจริงๆมันอาจจะยากและตึงไปสะหน่อย เอาเป็นว่า มีกฎที่แน่นอนยึดละทำตามให้ได้มากที่สุดก็ดีละค้าบบ

Team’s opinion come first

we don't do that here
ขอบคุณภาพจาก warframe forrum

Respect the rules

แต่ละคนมีความชอบ style ไม่เหมือนกันอยู่แล้ว เป็นเรื่องธรรมดา

ถ้าเราเขียนคนเดียวจะไม่ใช้ก็ยังได้ 55+ แต่เมื่อไหร่ที่เราทำงานเป็นทีม สำคัญมากๆที่เราจะต้องเคารพและเขียนตาม coding style ของทีมน้า

Adapting

ถ้า project อยู่ในช่วงเริ่มต้นก็ลุยหา convention ที่ต้องการกันเลย ช่วยกันหาอันที่เหมาะที่สุดกับทีม

แต่ถ้าเราต้องไปทำ project ที่มีอยู่ก่อนแล้ว ใช้ของเดิมเลยดีที่สุดด

Which Conventions should I use?

ลุง Bob Robert R. Martin บอกไว้ในหนังสือ clean code ว่า ควรใช้ style ที่คนใช้กันเยอะๆ (Industry Standard)

คงเพราะ Engineer เก่งๆระดับโลกเขาช่วยกันคิดมาแล้วเอาเวลาไป dev เถอะ ลุงไม่ได้กล่าว 55+

ส่วนตัวจากที่ผมดูมา แนะนำให้ใช้อันที่เขาทำ document มาชัดเจน มีตัวอย่างเยอะๆ จะได้ไม่มีปัญหาเวลาที่เราสงสัย

Example of function declarations in google swift style guide document
ตัวอย่างการเขียน function ของ google style ของภาษา swift – จาก Google style document

ต้องขอบคุณ Google เลยที่เขาทำ Google Style Guides ขึ้นมาเองไว้ให้ dev ใช้ภายในบริษัทเองเลย ไม่พอยังเอามาแบ่งให้คนอื่นใช้ด้วย กราบ doc ละเอียดมาก ส่วนตัวผมก็ใช้ของ google style เป็นหลักนะ (ป้ายยา 55) แนะนำเลย ใช้แล้วเหมือนเป็น dev google มาเอง

หรือจะลองหา style ที่ชอบในลิสนี้ดูก็ได้คับ มีหลายภาษาเลย ดีมากๆ ลองไปปรับใช้กันดูครับ

Awesome list of coding style conventions and standard by Kristories

หวังว่าจะมีประโยชน์กับเพื่อนๆนะครับ
อ่านจบแล้ว มาแชร์แลกเปลี่ยนกันได้น้าเพื่อนๆ ใช้แบบไหนอยู่ แบบไหนใช้แล้วดี หรือไม่ใช้เลย ลอง comment ได้นะครับ

ผมเขียนเรื่องแบบนี้เรื่อยๆ ถ้าเพื่อนๆชอบบทความที่อ่านช้าๆและมีสาระแบบนี้ ฝากกดติดตาม 🍌

One response to “Code Convention คืออะไร ทำไมถึงสำคัญกับทีม”

  1. […] ถ้าอยากอ่านเรื่องนี้ต่อผมมีเขียนไว้ใน ทำไม Code Convention ถึงสำคัญกับทีม […]

Leave a Reply

Discover more from Beamtan's Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading