25Dec, 2023
Language blog :
Thai
Share blog : 
25 December, 2023
Thai

การทำ Code Review ช่วยเราได้อย่างไร ?

By

2 mins read
การทำ Code Review ช่วยเราได้อย่างไร ?

Code Review คือการทำอะไร ?

การทำ Code Review เป็นกระบวนการหนึ่งในการพัฒนาซอฟต์แวร์ โดยจะเป็นการนำโค้ดมาตรวจดูว่ามีส่วนไหนไม่ถูกต้องหรือไม่ตรงตาม Requirement หรือไม่ รวมถึงโค้ดถูกต้องตามมาตรฐาน Computer Language หรือไม่ และรวมถึงการเสนอแนวทางการปรับปรุงให้ดีขึ้นกว่าเดิม

โดยในการพัฒนาซอฟต์แวร์แต่ละครั้งนั้นจะต้องนำโค้ดมารวมเข้ากับโค้ดของคนอื่น ๆในโปรเจกต์ ก็จะต้องผ่านการทำ Code Review ก่อนเสมอ หากมีการให้แก้ไขก็ต้องทำการแก้ไขให้เสร็จก่อนจึงจะนำโค้ดที่ได้มารวมกัน

 

ใครบ้างที่สามารถทำ Code Review ?

 

Credit: Group of people using laptop

 

คำตอบนั้นคือทุกคนในทีมที่มีส่วนร่วมในการเขียนโค้ดควรจะทำเพราะทุกคนในทีมล้วนเป็นเจ้าของโค้ด (Ownership) โดยปกติจะมีเงื่อนไขว่า Pull Request นั้นจะต้องได้รับการ Approve จาก Developer ในทีม ผู้เชี่ยวชาญที่เกี่ยวข้องหรือ Senior Developer อย่างน้อย 1 คนขึ้นไป จึงจะสามารถนำโค้ดไป Merge รวมกัน นอกจากสมาชิกภายในทีมที่ต้อง Review Code แล้ว คนที่ควรจะทำการ Review เป็นคนแรกนั้นก็คือผู้เขียนโค้ดนั้นเอง เพราะในบางครั้งหรือด้วยความรีบมักจะมีหลุดทำการ Comment โค้ด พิมพ์ผิด หรือลืมเติม s หรือ es หรืออาจจะเป็นใส่ print หรือ console.log() ไว้ โดยหากลองตรวจด้วยตัวเองอีกครั้งก็จะทำให้โค้ดของเรามีคุณภาพมากยิ่งขึ้น และลดเวลาในการ Review Code ได้อีกด้วย

 

ข้อดีและข้อเสียของการทำ Code Review

ข้อดีของการทำ Code Review

  1. Share Ownership หรือก็คือโค้ดเหล่านั้นเป็นของทุกคน ไม่ใช่เป็นของใครคนใดคนหนึ่ง

  2. Review Requirement เป็นการทบทวนถึงโค้ดที่เขียนมานั้นตรงตาม Requirement ไหม หรือทบทวนว่าทำถึงไหนแล้ว และยังเป็นการทบทวนตนเองด้วยว่าสิ่งที่ทีมทำมานั้นเราเข้าใจ Requirement ตรงกันหรือไม่

  3. Share Knowledge เป็นการแชร์ความรู้กัน โดยเมื่อมีการพัฒนาโค้ดแต่ละครั้ง ภายในทีมก็จะสามารถเรียนรู้เทคนิค หรือวิธีการแก้ไขปัญหาจากโค้ดที่เกิดจากการพัฒนา

  4. Improve Code Quality การทำ Code Review นั้นจะเป็นวิธีที่จะช่วยทำให้โค้ดนั้นมีประสิทธิภาพ และมีคุณภาพตามมาตรฐานที่กำหนดไว้

  5. Improve Learning การทำ Code Review เป็นสิ่งที่ได้ทั้ง 2 ฝ่ายเลย ทั้งคนเขียนและคนรีวิว คนเขียนได้แก้ไขปรับปรุงให้โค้ดอ่านง่าย เป็นมาตรฐาน และง่ายต่อการทำความเข้าใจ คนรีวิวได้ฝึกฝนการตรวจ การแก้ปัญหา และการให้คำแนะนำ

ข้อเสียของการทำ Code Review

  1. Fear of Review มักเป็นข้อเสียที่เกิดขึ้นได้ทุกที่ ยิ่งเป็นคนที่มาร่วมทีมใหม่ ๆ หรือประสบการณ์ยังน้อย มักจะไม่ค่อยกล้าที่จะ Review ซึ่งมักจะเกิดได้จากหลายสาเหตุ ได้แก่

  • ประสบการณ์หรือความชำนาญยังไม่มากพอก็อาจจะทำให้ไม่กล้าที่จะเข้าไปรีวิว

  • กลัวเมื่อรีวิวไปแล้วอาจจะโดนตำหนิ

  1. Long time to ship โดยการ Review Code ในแต่ละครั้งนั้นก็อาจจะใช้เวลาในการตรวจดูต่างกัน ซึ่งก็ขึ้นอยู่กับขนาดของ Pull Request ความยากของโค้ด หรือแม้กระทั้งความละเอียดในการตรวจ ซึ่งในบางครั้งอาจจะต้อง Pull Code ของ Pull Request มาใช้งานที่เครื่องตัวเองเพื่อดูว่าทำงานตรงตามสเปคหรือไม่

  2. Large reviews mean longer review times การมีคนมารีวิวโค้ดเยอะ ๆ นั้นก็อาจจะไม่ได้ดีไปซะทั้งหมด เนื่องจากการที่มีผู้มารีวิวเยอะก็จะทำให้ใช้เวลาในการพูดคุยหรือโต้แย้งนานขึ้น ยิ่งเป็น Pull Request ที่มีขนาดใหญ่แล้วด้วยก็อาจจะทำให้ใช้เวลามากขึ้นไปอีก

 

แล้วถ้าไม่เคยทำ Code Review เลยจะต้องเริ่มยังไงดี ?

ยกตัวอย่างเช่นใช้เครื่องมือในการเก็บโค้ดเป็น Github ปกติถ้าไม่ทำ Code Review ก็อาจจะแตก Branch แล้วทำการพัฒนาโค้ดเสร็จก็จะนำโค้ดที่จะทำการ Merge ไปยัง Master หรือ Main โดยก่อนจะทำการ Merge นั้นแหละ ให้ทีมมาตรวจโค้ดกัน หากทีมไม่มีข้อเสนอแนะก็จะทำการ Approve เราก็จะสามารถ Merge ได้เลย

 

 

Credit: https://flic.kr/p/gLKune

 

อีกแนวทางก็คือการทำ Pair Programming วิธีการนี้คือจะทำเป็นกันเป็นคู่ โดยสลับกันคือคนนึงจะเป็นคนเขียนโค้ดส่วนนึงอีกคนก็จะคอยรีวิวความถูกต้องหรือแนะนำแนวทาง

ข้อดีของวิธีนี้คือ

  • เป็นการแลกเปลี่ยนความรู้ซึ่งกันและกัน

  • แก้ปัญหาได้รวดเร็วเมื่อผู้ที่โค้ดอยู่ติดปัญหา

  • เหมาะกับการไกด์ให้แก่ผู้ที่ประการณ์น้อย

ข้อเสียก็มีเหมือนกัน เช่น

  • ใช้เวลาในการพัฒนานขึ้น

 

สิ่งที่ควรทำสำหรับ Code Review

Small Pull Request จะดีกว่ามั้ย ถ้าหากนำโค้ดที่มีความยาวไม่มาก อาจจะไม่เกิน 100-300 บรรทัด เพราะยิ่ง Pull Request นั้นมีขนาดเล็กได้ก็จะง่ายและเร็วขึ้นกับผู้ตรวจ

Team should be review การทำ Code Review นั้น ทีมก็ควรช่วยทำเพราะอย่างที่กล่าวไป ทีมเป็นผู้รู้ข้อมูล Requirement และโค้ดก็เป็นของทีม การทำแบบนี้ยังช่วยให้ทีมยังคงทำตามมาตรฐานที่วางไว้  และการที่ทีมสามารถรีวิวโค้ดได้นั้นจะทำให้ไม่มีคำว่าคนหลักในการตรวจโค้ด

Ask questions and provide helpful context เมื่อได้รีวิวโค้ด หากสงสัยก็สามารถตั้งคำถามได้ หรือหากมีส่วนไหนที่สามารถปรับปรุงได้ก็ควรจะแนะนำและอธิบายถึงเหตุผลในการปรับปรุงเพิ่ม

 

References:

ทำไมต้องทำ Code Review อะ !!!!

ทำไมเราจึงทำ Code Review

What is a Code Review?

Written by
Nat
Nat

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

01
March, 2024
JS class syntax
1 March, 2024
JS class syntax
เชื่อว่าหลายๆคนที่เขียน javascript กันมา คงต้องเคยสงสัยกันบ้าง ว่า class ที่อยู่ใน js เนี่ย มันคืออะไร แล้วมันมีหน้าที่ต่างกับการประกาศ function อย่างไร? เรามารู้จักกับ class ให้มากขึ้นกันดีกว่า class เปรียบเสมือนกับ blueprint หรือแบบพิมพ์เขียว ที่สามารถนำไปสร้างเป็นสิ่งของ( object ) ตาม blueprint หรือแบบพิมพ์เขียว( class ) นั้นๆได้ โดยภายใน class

By

4 mins read
Thai
01
March, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
1 March, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
ผู้ให้บริการเครือข่ายในสหรัฐฯ ได้เปิดตัว 5G ในหลายรูปแบบ และเช่นเดียวกับผู้ให้บริการเครือข่ายในยุโรปหลายราย แต่… 5G มันคืออะไร และทำไมเราต้องให้ความสนใจ บทความนี้ได้รวบรวม 15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G เพราะเราปฏิเสธไม่ได้เลยว่ามันกำลังจะถูกใช้งานอย่างกว้างขวางขึ้น 1. 5G หรือ Fifth-Generation คือยุคใหม่ของเทคโนโลยีเครือข่ายไร้สายที่จะมาแทนที่ระบบ 4G ที่เราใช้อยู่ในปัจจุบัน ซึ่งมันไม่ได้ถูกจำกัดแค่มือถือเท่านั้น แต่รวมถึงอุปกรณ์ทุกชนิดที่เชื่อมต่ออินเตอร์เน็ตได้ 2. 5G คือการพัฒนา 3 ส่วนที่สำคัญที่จะนำมาสู่การเชื่อมต่ออุปกรณ์ไร้สายต่างๆ ขยายช่องสัญญาณขนาดใหญ่ขึ้นเพื่อเพิ่มความเร็วในการเชื่อมต่อ การตอบสนองที่รวดเร็วขึ้นในระยะเวลาที่น้อยลง ความสามารถในการเชื่อมต่ออุปกรณ์มากกว่า 1 ในเวลาเดียวกัน 3. สัญญาณ 5G นั้นแตกต่างจากระบบ

By

4 mins read
Thai
01
March, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
1 March, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
ในปัจจุบันนี้ ปฏิเสธไม่ได้เลยว่าภาษาที่ถูกใช้ในการเขียนเว็บต่าง ๆ นั้น คงหนีไม่พ้นภาษา Javascript ซึ่งเป็นภาษาที่ถูกนำไปพัฒนาเป็น framework หรือ library ต่าง ๆ มากมาย ผู้พัฒนาหลายคนก็มีรูปแบบการเขียนภาษา Javascript ที่แตกต่างกัน เราเลยมีแนวทางการเขียนที่หลากหลาย มาแบ่งปันเพื่อน ๆ เกี่ยวกับการจัดการ Array ด้วยภาษา Javascript กัน เรามาดูตัวอย่างกันเลยดีกว่า โดยปกติแล้วการ copy ค่าจาก value type ธรรมดา สามารถเขียนได้ดังนี้

By

4 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.