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

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

By

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

By

4 mins read
Thai
24
June, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
24 June, 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.