coding standard คืออะไร

coding standard คืออะไร

coding standard คืออะไร

มันคือ การตั้งมาตรฐาน รูปแบบ/วิธีการเขียนโค้ด ขึ้นมา หรือการเอามาตรฐานที่เค้าใช้กันแพร่หลาย มาปรับใช้กับการเขียนโค้ด เพื่อให้ระบบที่เราต้องเขียนโค้ดเป็น พันๆ หรือ หมื่นๆ บรรทัด มีหน้าตาการจัดเรียงตัวโค้ด ให้เป็นไปในแนวทางเดียวกันหมดโดย coding standard จะไม่ได้กล่าวถึงเรื่องผลลัพท์ หรือการทำงานของระบบเลย

coding standard มันเป็นแบบไหน

ถ้าจะให้เห็นภาพ มันคือ ข้อกำหนดในการเขียนโค้ดส่วนต่างๆครับ เช่น ถ้าคุณต้องการเขียน block ของโค้ด เช่นคำสั่ง if ถ้าเราจะเขียนให้ตรงตาม Coding standard บางตัวเค้าบอกว่า ให้เขียนแบบนี้ ถึงจะถูกต้อง

if(condition){ do_something; } else { do_something_else; }

แต่เขียนแบบนี้ ไม่ถูกต้อง

if(condition) { do_something; } else { do_something_else; }

ถ้าสังเกตุ จะเห็นเลย ว่า เครื่องหมายปีกกา มันอยู่คนละบรรทัด คนละตำแหน่งกัน แต่ทั้งสองตัว ได้ผลลัพท์ที่เหมือนกันอย่างแน่นอน 100% เพียงแต่ว่า เขียนตรงตาม coding standard หรือไม่ ก็เท่านั้นเอง นี่แหล่ะครับ คือหน้าตา coding standard ที่จับต้องได้ โดยเค้าจะกำหนดละเอียดเลย ว่า การเขียน comment ต้องวางตำแหน่ง บรรทัดแบบไหน บรรทัดเดียวยังไง หลายบรรทัดยังไง การตั้งชื่อตัวแปร ต้องตั้งแบบไหน ตัวแรกพิมพ์ใหญ่ หรือเป็นตัวเล็กหมด อะไรเหล่านี้เป็นต้นครับ

coding standard มีประโยชน์อย่างไร

ประโยชน์ของมันก็คือ เราจะได้โค้ด ที่อยู่บน standard เดียวกัน หน้าตาเหมือนกัน ดังนั้นเวลาที่อ่านโค้ด เราจะไม่เปลืองสมองในการจัดย่อหน้าของ block โค้ดก่อน แล้วค่อยตีความ logic ของโปรแกรม เช่น ถ้าผมเขียนโปรแกรม แบบไม่อิงตาม coding standard ในการเช็คเงื่อนไขเหมือนเดิม แต่เขียนออกมาหน้าตาแบบนี้

if(condition){do_something;}else{ do_something_else; }

อ่านแล้ว สับสนไหมครับ ถ้าคนที่อ่านโค้ดแบบเร็วๆ แบบ scan อ่านเลย เพราะโค้ดมีเป็นพันบรรทัด จะเข้าใจว่า if condition แล้วทำ do_something_else; ไปได้เฉยๆเลย ซึ่งการตีความผิดไปโดยสิ้นเชิงเลยนะครับ ดั้งนั้น coding standard นี่แหล่ะครับ ที่จะเป็นตัวบังคับให้เราต้องทำตาม standard เพื่อป้องกันความผิดพลาดพวกนี้นั่นเอง

ยังไม่พอเท่านั้น หากต้องทำงานเป็นทีม ยิ่งสำคัญมากเลยครับ เพราะว่า คนนึงเขียนแบบแรก อีกคนเขียนแบบสอง เวลาเอางานมารวมกันแล้วต้องอ่านทั้งสองไฟล์จากทั้งสองคนข้ามไปมา งง แน่นอน เพราะสมองต้องสลับไปมาตลอด ดังนั้น การทำงานเป็นทีม ควรตั้ง coding standard ให้เรียบร้อยก่อนเสมอครับ หลายครั้ง กำหนดถึงกระทั่ง การตั้งชื่อตัวแปรเลย เช่น ใครอยู่ดีๆใช้ $a (ตัวหนุงสือตัวเดียว หรือ ชื่อที่ไม่มีความหมายเช่น xxx abc)ในโปรแกรมที่ไม่ใช่ loop ถือว่ามีความผิด เลย เพื่อไม่ให้เกิดขยะกระจัดกระจายนั่นเอง

coding standard สำหรับโปรแกรมเมอร์คนเดียว จำเป็นหรือเปล่า?

จำเป็นครับ ถ้าวันที่คุณเป็นมือใหม่เขียนโค้ด หลักสิบ หรือ หลักร้อย บรรทัด ยังไม่เห็นความแตกต่างหรอกครับ เขียนตามใจไปเถอะ แต่ถ้าเมื่อได้ที่ต้องแตะหลักพันขึ้นไป แน่นอนว่า ต้องเขียนนาน หลายวัน เป็นสัปดาห์ บางคนเป็นเดือน เหมือนต้องทำงานต่อจากงานตัวเอง บางทีกลับมาอ่านของตัวเอง แบบที่ไม่มี standard ก็พา งง ได้เหมือนกันนะครับ เพราะว่าต้องเสียเวลาตีความเยอะกว่าปกติ ทั้งๆที่ตัวเองเขียนเองแท้ๆ กลับอ่านแล้ว งง ว่าเดี๋ยวเขียนแบบนี้ เดี๋ยวเขียนแบบนั้น ไร้หลักเหลือเกิน แต่บางคนอาจจะเถึยงได้ว่า ไม่จำเป็นเลย เพราะว่าเขียนมาเยอะ จนรู้ pattern ของการเขียนของตัวเองหมดแล้ว ไม่มีปัญหาพวกนี้เลย แต่หารู้ไม่ว่า คุณเองนั่นแหล่ะ ได้สร้าง coding standard ขึ้นมาแล้ว เพราะสร้างขึ้นมา ให้ตัวเองใช้เองไงครับ ซึ่งนั่นไม่ใช่เรื่องผิดเลย (แต่ถ้าต้องทำงานกับคนอื่น อธิบายให้เค้าเข้าใจก่อนสักรอบ ก็ใช้งานร่วมกันได้แล้ว)

แล้วจะใช้ coding standard ตัวไหนดี

เอ่อ อันนี้ตอบยากครับ ถ้าไม่ได้ถูกใครกำหนดมาให้ใช้ แนะนำให้ลองเขียนหลายๆตัว ว่าตัวไหนถูกจริตเรา ก็เอาตัวนั้นมาใช้เลยครับ และแนะนำว่า ให้ปฏิบัติตามอย่างเคร่งครัด ถ้าจะมีหลุดบ้าง ก็ขอให้น้อยที่สุด ส่วนตัวผมเอง ผมอิงตาม Codeigniter Coding standard ครับ (เพราะผมทำงานบน codeigniter โดยตลอด) แต่มีสิ่งเดียวที่ผมไม่ได้ทำตามคือ การเขียน if เท่านั้นครับ ผมเอาเครื่องหมาย ปีกกา วางในบรรทัดเดียวกับ if และ else แบบนี้

if(condition){ do_something; } else { do_something_else; }

นอกนั้นก็ตามนั้นครับ (จริงๆ ติดการเขียน if แบบนี้มาตั้งแต่ตอนที่เขียน ภาษา C แล้วครับ เพราะว่าแบบนี้มันเป็น C Coding standard)

สุดท้ายนี้ ถ้ายังไม่เริ่มเขียนตาม Coding standard ก็เริ่มเถอะครับ ไม่มีคำว่าสายไป ของเก่า ก็ช่างมัน เริ่มต้นใหม่ทำใหม่ เพื่ออนาคตตัวเราเองครับ

ทั้งนี้ coding standard ยังไม่ถือว่าเป็นที่สุดในการจัดระเบียบโค้ดนะครับ เรายังมีขั้นกว่าอีก ที่ต้องใช้ทั้งศาสตร์และ ศิลป์ กันเลยทีเดียว แต่ว่า อดใจรอบทความต่อไปนะครับ

Create: Modify : 2013-06-12 23:52:58 Read : 4892 URL :