Code Review คืออะไร และเหตุใดจึงจำเป็น?

ที่มา: DZone การเริ่มต้นสตาร์ทอัพเป็นเรื่องยาก แต่การเขียนซอฟต์แวร์นั้นไม่ใช่เรื่องง่าย เพื่อให้ซอฟต์แวร์ทำงานได้ดี คุณต้องมีโค้ดที่ดี แต่คุณจะแน่ใจได้อย่างไรว่าโค้ดของคุณดีจริงๆ ในขณะที่ทำงานกับโค้ดไคลเอนต์ เราพบว่านักพัฒนาอิสระจำนวนมากและแม้แต่บริษัทไอทีเพิกเฉยต่อการตรวจสอบโค้ด เนื่องจากทีมของเราถือว่าการตรวจสอบโค้ดเป็นขั้นตอนมาตรฐานในการทำงาน เราจึงตัดสินใจอธิบายมุมมองของเรา คอฟฟี่เบรค #38  Code Review คืออะไร และเหตุใดจึงจำเป็น?  Imposter syndrome เป็นเพื่อนที่ดีที่สุดของนักพัฒนา - 1เรามาเริ่มด้วยคำศัพท์พื้นฐานกันก่อน

การตรวจสอบโค้ดคืออะไร?

เป็นการตรวจสอบซอร์สโค้ดซอฟต์แวร์อย่างเป็นระบบเพื่อค้นหาข้อผิดพลาดและประเมินคุณภาพ การตรวจสอบโค้ดประกอบด้วยขั้นตอนต่อไปนี้:
  • การกำหนดวิธีที่มีประสิทธิภาพที่สุดในการทำงานให้สำเร็จ
  • ค้นหาข้อผิดพลาดเชิงตรรกะ
  • ค้นหาช่องโหว่ที่พบบ่อยที่สุด
  • การตรวจจับมัลแวร์คือการตรวจสอบโค้ดประเภทพิเศษเพื่อค้นหาโค้ดที่น่าสงสัยหรือค้นหาและมัลแวร์ใดๆ ที่รวมอยู่ในซอฟต์แวร์

ทำไมคุณจึงต้องมีการตรวจสอบโค้ด?

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

คู่มือการทบทวนโค้ด

จากประสบการณ์ของเรา เราได้ตัดสินใจเตรียมคำแนะนำสั้นๆ สำหรับนักพัฒนาที่จะตรวจสอบซอร์สโค้ดของโปรเจ็กต์ของตน
แบ่งการวิจารณ์โค้ดออกเป็นช่วงเวลา
อย่าพยายามวิเคราะห์ทั้งโครงการพร้อมกัน ผู้เชี่ยวชาญแนะนำว่าอย่าตรวจสอบโค้ดมากกว่า 400 บรรทัดในคราวเดียว นอกจากนี้ การตรวจสอบครั้งเดียวจะใช้เวลาไม่เกินหนึ่งชั่วโมง มนุษย์ไม่สามารถประมวลผลข้อมูลจำนวนนี้ได้อย่างมีประสิทธิภาพ โดยเฉพาะอย่างยิ่งในระยะเวลาอันยาวนาน เมื่อคุณเกินเครื่องหมายนี้ ความสามารถในการตรวจจับข้อผิดพลาดจะลดลงอย่างเห็นได้ชัด ดังนั้นคุณอาจพลาดข้อผิดพลาดที่สำคัญบางประการได้
ขอความช่วยเหลือจากเพื่อนร่วมทีม
หนึ่งหัวก็ดี แต่สองดีกว่า คุณอาจแปลกใจว่าคุณภาพของรีวิวจะดีขึ้นมากเพียงใดหากคุณแบ่งปันกระบวนการนี้กับผู้อื่น เราคุ้นเคยกับการทบทวนโค้ดร่วมกันโดยใช้Crucible ของ Atlassian เครื่องมือนี้ช่วยให้คุณสามารถมอบหมายผู้ตรวจสอบเพิ่มเติม หารือเกี่ยวกับบรรทัดซอร์สโค้ด ไฟล์ หรือการเปลี่ยนแปลงทั้งชุดที่เลือก การตรวจสอบโค้ดร่วมกันไม่เพียงแต่ปรับปรุงซอฟต์แวร์เท่านั้น แต่ยังปรับปรุงความสามารถของทีมด้วยการแบ่งปันความรู้ผ่านการสนทนาอีกด้วย
ตัวชี้วัดการบันทึก
ก่อนเริ่มการตรวจสอบ ทีมงานควรกำหนดเป้าหมายที่ชัดเจน เช่น "ลดอัตราข้อบกพร่องลงครึ่งหนึ่ง" เป้าหมายของการ "ค้นหาจุดบกพร่องเพิ่มเติม" นั้นเป็นนามธรรมเกินไป ดังนั้นจึงเป็นไปไม่ได้ที่จะบรรลุผลสำเร็จ ในระหว่างการตรวจสอบ ให้บันทึกตัวบ่งชี้ เช่น ความเร็วของการตรวจสอบ จำนวนข้อผิดพลาดที่พบต่อชั่วโมง และจำนวนข้อผิดพลาดโดยเฉลี่ยต่อบรรทัดของโค้ด การติดตามผลการตรวจสอบอย่างต่อเนื่องจะแสดงให้คุณเห็นภาพรวมที่แท้จริงของกระบวนการภายใน
รักษาทัศนคติเชิงบวก
บางครั้งการตรวจสอบโค้ดอาจทำให้ความสัมพันธ์ภายในทีมแย่ลงได้ ไม่มีใครชอบถูกวิพากษ์วิจารณ์ ดังนั้นการรักษาบรรยากาศที่เป็นมิตรจึงเป็นสิ่งสำคัญมาก เว้นแต่ว่าคุณต้องการให้เพื่อนร่วมงานสูญเสียแรงจูงใจ แทนที่จะมองข้อบกพร่องแต่ละอย่างในเชิงลบ ให้คิดว่านี่เป็นโอกาสใหม่ในการปรับปรุงคุณภาพของโค้ดโดยรวม
ตั้งค่ากระบวนการแก้ไขข้อผิดพลาด
ทีมของคุณได้ทำการตรวจสอบโค้ดเสร็จแล้ว แต่จะทำอย่างไรกับการแก้ไขจุดบกพร่องที่พบ? เป็นเรื่องน่าประหลาดใจสำหรับเราที่ได้เรียนรู้ว่าทีมพัฒนาบางทีมไม่มีวิธีการที่กำหนดไว้ในการแก้ไขข้อผิดพลาดที่พบ โชคดีที่เราทำงานร่วมกันไม่เพียงแต่เพื่อค้นหาข้อผิดพลาด แต่ยังเพื่อแก้ไขข้อผิดพลาดด้วย ข้อบกพร่องทั้งหมดจะมีการหารือกับผู้สร้าง (ยกเว้นในขณะที่เรากำลังตรวจสอบโค้ดของทีมอื่น) และการเปลี่ยนแปลงทั้งหมดจะได้รับการอนุมัติเสมอก่อนที่จะถูกส่งไปยังแหล่งที่มา

สรุป

การตรวจสอบโค้ดควรเป็นกระบวนการที่สำคัญในบริษัทพัฒนาใดๆ เนื่องจากจะช่วยรักษามาตรฐานการเขียนโค้ดให้มีคุณภาพสูง การทำงานร่วมกันในการตรวจสอบโค้ดจะนำทีมมารวมกันและให้โอกาสในการแบ่งปันความรู้และประสบการณ์ภายในบริษัท ดังนั้นไม่ว่าคุณจะเริ่มต้นธุรกิจหรือส่งมอบโปรเจ็กต์ให้กับทีมอื่น ให้ตรวจสอบโค้ดเสมอเพื่อให้แน่ใจว่าซอฟต์แวร์ของคุณมีคุณภาพดีที่สุด

Imposter syndrome เป็นเพื่อนที่ดีที่สุดของนักพัฒนา

ที่มา: Catalins.tech หลังจากอ่านชื่อเรื่องแล้ว คุณอาจคิดว่ามีบางอย่างผิดปกติกับฉัน แต่ฉันจะพูดอีกครั้ง: Impostor Syndrome เป็นเพื่อนที่ดีที่สุดของนักพัฒนาหากได้รับการชี้นำในทิศทางที่ถูกต้อง ฉันยังเชื่อด้วยว่ากลุ่มอาการแอบอ้างแพร่หลายมากในการพัฒนาซอฟต์แวร์ เนื่องจากความรู้จำนวนมหาศาลที่คุณต้องมีและการเปลี่ยนแปลงเครื่องมือและภาษาการเขียนโปรแกรมอย่างต่อเนื่อง คอฟฟี่เบรค #38  Code Review คืออะไร และเหตุใดจึงจำเป็น?  Imposter syndrome เป็นเพื่อนที่ดีที่สุดของนักพัฒนา - 2ภาษาการเขียนโปรแกรมและเครื่องมือที่คุณใช้ในปัจจุบันอาจล้าสมัยภายในหนึ่งปี ซึ่งหมายความว่าคุณจะต้อง "เริ่มต้นใหม่" อีกครั้งในระดับหนึ่ง การพัฒนาซอฟต์แวร์เป็นสภาพแวดล้อมที่มีการเปลี่ยนแปลงตลอดเวลาซึ่งคุณต้องเรียนรู้อย่างต่อเนื่อง แต่ถึงแม้จะมีความยากลำบาก แต่คุณก็สามารถชินกับสิ่งเหล่านี้ได้ ดังนั้นจึงแทบเป็นไปไม่ได้เลยที่จะกำจัดกลุ่มอาการแอบอ้าง ทำไมไม่เรียนรู้ที่จะอยู่กับมันล่ะ?

พวกเราส่วนใหญ่มีมัน

ให้ฉันบอกคุณอย่างอื่น พวกเราเกือบทุกคนต้องทนทุกข์ทรมานจากกลุ่มอาการแอบอ้าง มีคนที่ดีกว่าเราเสมอ มีบางอย่างที่เราไม่รู้อยู่เสมอ มีบางสิ่งให้เรียนรู้อยู่เสมอ มีเครื่องมือใหม่ออกมาทุกวัน ในบางครั้งเทคโนโลยีหรือภาษาการเขียนโปรแกรมใหม่ก็ปรากฏขึ้น คุณจะไม่สามารถเรียนรู้ได้ทั้งหมด การพยายามตามให้ทันก็เป็นเรื่องยากมากเช่นกัน และนี่คือลักษณะอาการที่ปรากฏ คุณเริ่มถามคำถามกับตัวเองว่า “ฉันจะทำสิ่งนี้ได้ไหม”, “ฉันจะทำ x, y, z ได้ไหม”, “ฉันจะรู้จักเทคโนโลยี x, y, z หรือไม่” , "ถ้าฉันเป็นคนแอบอ้างล่ะ?" และรายการก็ดำเนินต่อไป คำตอบคือ ใช่ ใช่ และใช่ อย่างไรก็ตาม กลุ่มอาการแอบอ้างนั้นแย่กว่าสำหรับผู้เริ่มต้นที่รู้สึกว่าตนเองจะไม่ประสบความสำเร็จในสาขานี้ ฉันก็ผ่านเรื่องนี้เหมือนกัน คุณสามารถเอาชนะอาการนี้ได้ด้วยการทำงานหนัก

จินตนาการ

คุณไม่ใช่คนเดียวที่ถามคำถามเหล่านี้กับตัวเอง เพื่อนร่วมงานของคุณมีปัญหาเดียวกัน นักพัฒนาที่คุณติดตามบน Twitter ก็มีคำถามที่คล้ายกันเช่นกัน และบล็อกเกอร์วิดีโอที่มีสมาชิก 50,000 คน และคำถามเหล่านี้ก็ปรากฏตรงหน้าฉันเช่นกัน แม้ว่าฉันจะมีงานทำและทุกอย่างเรียบร้อยดีก็ตาม คำถามไม่เพียงรบกวนคุณเท่านั้น กลุ่มอาการแอบอ้างเป็นส่วนหนึ่งของอาชีพของเรา แน่นอนว่าบางคนจัดการกับมันได้ดีกว่า ดังนั้นจึงไม่ชัดเจนว่าพวกเขาจะมีปัญหาเช่นกัน แต่เชื่อฉันเถอะว่าพวกเราเกือบทุกคนมีมัน

จะทำอย่างไร?

ก่อนอื่น คุณต้องเข้าใจว่ากลุ่มอาการแอบอ้างสามารถกลายเป็นเพื่อนที่ดีที่สุดของคุณได้ ท้ายที่สุดเขาผลักดันให้คุณดีขึ้น การรู้สึกว่าคุณไม่ถูกตัดขาดจากอุตสาหกรรมนี้หรือว่าคุณไม่ได้มีความรู้มากนัก อาจเป็นแรงจูงใจให้คุณเรียนรู้เพิ่มเติม ส่งผลให้คุณดีขึ้นทุกวัน ฉันใช้กลุ่มอาการแอบอ้างเป็นเชื้อเพลิง เป็นแรงจูงใจในการเป็นนักพัฒนาที่ดีขึ้น และมันก็ได้ผลดีมาก แต่ต้องระวังเพราะมันสามารถผลักดันคุณไปสู่ภาวะเหนื่อยหน่ายได้อย่างรวดเร็ว เชื่อฉันสิคุณไม่จำเป็นต้องสิ่งนี้ เมื่อใดก็ตามที่คำถามและความคิดที่ไม่มีเหตุผลเล็ดลอดเข้ามาในหัวของคุณ โปรดจำไว้ว่านักพัฒนาซอฟต์แวร์ทุกคนต้องทนทุกข์ทรมานจากอาการเดียวกัน จำไว้ว่ามีนักพัฒนาที่ดีกว่าคุณอยู่เสมอ แต่โปรดจำไว้ว่ายังมีนักพัฒนาที่แย่กว่าคุณอยู่เสมอ จำไว้ว่าคุณไม่สามารถรู้ทุกสิ่งทุกอย่างได้ และก็ไม่เป็นไร คุณจำเป็นต้องรู้เครื่องมือบางอย่างที่เกี่ยวข้องกับงานของคุณเท่านั้น ด้วยความพากเพียร คุณสามารถเป็นนักพัฒนาที่ดีได้ คุณคิดว่าคุณจะกลายเป็นโปรแกรมเมอร์ที่เก่งที่สุดหรือไม่ เพราะเหตุใด เป็นไปได้มากว่าไม่มี คุณจะทำงานให้กับ Amazon/Facebook/Google/Apple หรือไม่ อาจจะไม่อย่างใดอย่างหนึ่ง คุณจะได้รับเงินล้านหรือไม่? แทบจะไม่. แต่คุณรู้อะไรไหม? นี่เป็นเรื่องปกติ คุณไม่จำเป็นต้องทำสิ่งเหล่านี้เพื่อเป็นนักพัฒนาที่ดี เพราะในความเป็นจริงแล้ว พวกเราส่วนใหญ่ไม่เคยบรรลุเป้าหมายเหล่านี้ทั้งหมดเลย

จดจำ

  1. พวกเราเกือบทุกคนมีกลุ่มอาการแอบอ้าง
  2. คุณสามารถประสบความสำเร็จในอุตสาหกรรมนี้ได้ด้วยความอุตสาหะของคุณ
  3. คุณจะไม่มีทางรู้ทุกอย่างและก็ไม่เป็นไร
  4. มีนักพัฒนาที่ดีกว่าคุณอยู่เสมอ แต่ก็มีนักพัฒนาที่แย่กว่าคุณเช่นกัน
  5. คุณไม่จำเป็นต้องเป็นโปรแกรมเมอร์ระดับซุปเปอร์สตาร์ แค่เก่งในงานก็พอแล้ว