เพื่อนร่วมงานของฉันควรตรวจสอบโค้ดของกันและกันจากระบบควบคุมแหล่งที่มาหรือไม่


9

นั่นคือเรื่องราวของฉัน: หนึ่งในเพื่อนร่วมงานของฉันใช้ในการตรวจสอบรหัสทั้งหมดเป็นเจ้าภาพในการแก้ไขระบบ ฉันไม่ได้พูดถึงการตรวจทานการเปลี่ยนแปลงในส่วนต่าง ๆ ที่เพียงพอที่เขาเป็น เขาเฝ้าดูไฟล์รหัสเป็นไฟล์บรรทัดต่อบรรทัด ทุกไฟล์ใหม่และทุก ๆ การแก้ไข ฉันรู้สึกเหมือนกำลังถูกสอดแนม!

ฉันเดาว่าถ้ารหัสถูกโฮสต์ไว้ในระบบควบคุมแล้วคุณควรเชื่อถือได้อย่างน้อยที่สุด คำถามของฉันคือบางทีฉันอาจเป็นแค่ความหวาดระแวงและการฝึกฝนทบทวนรหัสอื่น ๆ ก็ดี?

PS: เราเป็นทีมงานของนักพัฒนาเพียงสามคนและฉันกลัวว่าหากมีพวกเราเพิ่มขึ้นเพื่อนร่วมงานก็จะไม่มีเวลาตรวจสอบรหัสทั้งหมดที่เราจะเขียน

คำตอบ:


19

ฉันจะบอกว่าใช่!

สองเหตุผลอย่างรวดเร็วสำหรับมัน:

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

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

ฉันไม่คิดว่าคุณควรรู้สึกสอดแนม ยอมรับคำวิจารณ์ที่ใครบางคนมอบให้คุณ (ถ้ามันถูกต้องแน่นอน) และอย่าลังเลที่จะให้คำวิจารณ์ที่ถูกต้องแก่คนอื่น มันเป็นวิธีที่เราเรียนรู้ เมื่อเราหยุดเรียนรู้ (หรือต้องการหยุด) แล้วมีปัญหาใหญ่


12

ถ้าเพื่อนร่วมงานพูดว่าให้ผลตอบรับที่ดีและสร้างสรรค์นี่เป็นสิ่งที่น่าอัศจรรย์และคุณควรชื่นชมมันมาก

สิ่งนี้จะตรวจจับข้อบกพร่องที่คุณไม่ได้คิดเมื่อเขียน สิ่งนี้จะส่งผลให้คุณเขียนโค้ดที่ดีขึ้นเพราะคุณรู้ว่าคนอื่นจะเห็นมัน


4

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

มันจะช่วยให้มีมาตรฐานการเข้ารหัสเพื่อหลีกเลี่ยงการอภิปรายเกี่ยวกับความคิดเห็นเกี่ยวกับพื้นที่สีขาวและรูปแบบรหัสอย่างต่อเนื่อง การมีการวิเคราะห์โค้ดแบบสแตติกบนเครื่องบิลด์อาจมีประโยชน์ในการพูดคุยกัน

เกี่ยวกับแง่มุมของเวลาทฤษฎีก็คือมันจะช่วยคุณประหยัดเวลา ข้อบกพร่องในภายหลังจะพบว่ามีราคาแพงกว่าพวกเขาได้รับล้มเหลวหลักการอย่างรวดเร็ว การตรวจสอบรหัสเพียร์สามารถจับปัญหาได้บ้าง


1
+1 เห็นด้วย คนคนหนึ่งที่ทำรีวิวทั้งหมดสามารถนำไปสู่ความไม่สบายใจในทีม มันสามารถไปอย่างผิดปกติอย่างน่ากลัวและนำมาใช้เป็นรหัสของฉันดีกว่ารหัสของคุณ นี่ควรจะเป็นการทำงานเป็นทีม
Audrius

@Andrius: เศร้าฉันเข้าใจว่าคุณหมายถึงอะไร
kizzx2

3

เพื่อนร่วมงานของคุณดูเหมือนนักพัฒนาที่ขยันหมั่นเพียรคุณควรทำตามตัวอย่างของเขา


3

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

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

โดยส่วนตัวแล้วมันทำให้ฉันเข้าใจมากขึ้นถึงสิ่งที่เกิดขึ้นในส่วนอื่น ๆ ของ codebase ที่ฉันไม่ได้สัมผัสเป็นประจำ เมื่อคนอื่นต้องการความช่วยเหลือฉันสามารถกระโดดได้เร็วขึ้น นอกจากนี้เมื่อความคิดใหม่ปรากฏขึ้นฉันสามารถใช้ประโยชน์จากพวกเขาได้เร็ว


1

คุณรู้สึกว่ามันถูกสอดแนม (!)? แต่จากมุมมองของเพื่อนร่วมงานของคุณฉันจะบอกว่าเขากำลังทำสิ่งที่ถูกต้องสำหรับการพัฒนาอาชีพของเขา อ่านรหัสอื่น ๆ และค้นหาวิธีที่พวกเขาออกแบบและใช้ตรรกะสิ่งนี้จะทำให้คุณได้รับมาก!

IMHO ถ้ามีคนชี้ให้เห็นสิ่งผิดปกติในรหัสของคุณคุณต้องยอมรับมันและเรียนรู้จากพวกเขาเกี่ยวกับวิธีการเขียนรหัสที่ดี


1

ในช่วง 6-7 เดือนฉันก็ทำแบบเดียวกัน ไม่ใช่เพื่อสอดแนม แต่เพื่อควบคุมคุณภาพ ทุกรหัสบรรทัดเดียวสำหรับแอพพลิเคชั่นที่พัฒนาขึ้นอย่างมุ่งมั่นกับพื้นที่เก็บข้อมูลส่วนกลาง, 2 ภาษาหลัก, อีกสองสามภาษา, makefiles ขนาดใหญ่สำหรับ 4 แพลตฟอร์ม

มันเป็นเรื่องที่เลวร้ายมาก บางวันฉันพบว่าฉันไม่สามารถจับทุกอย่างได้เนื่องจากความทนทาน ข้อโต้แย้งอีกข้อหนึ่งคือเรื่องส่วนตัว - ทุกคนอาจจะผิด

มันจะดีกว่าเมื่อนักพัฒนาตรวจสอบรหัสของกันและกันและมีใครบางคนที่มีประสบการณ์ในการตัดสินใจขั้นสุดท้ายและกำหนดทิศทาง


1

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


0

สิ่งนี้เกิดขึ้นในทีมของฉันอีกครั้ง น่าเสียดายที่มันส่งผลให้เกิดเกมตำหนิ ผู้คนรอให้คนอื่นเช็คอินรหัสอย่างต่อเนื่องและจะพยายามค้นหาสิ่งผิดปกติและเล่นเกมโทษตลอดเวลา

ฉันหวังว่าคุณจะมีผู้ชมที่เป็นผู้ใหญ่มากขึ้น


จะเป็นการดีกว่าถ้าให้ผู้ให้รหัสเขาเชิญคนอื่นให้ตรวจสอบรหัสก่อนที่จะเช็คอิน สิ่งนี้อาจป้องกันความคลั่งไคล้ที่คุณอธิบาย
Joppe

@Tunga: ส่วนที่ตลกคือมีการตรวจสอบเฉพาะรหัสที่ได้รับการตรวจสอบแล้ว แต่พวกเขาทั้งหมดก็ยังกระตือรือร้นที่จะพิสูจน์ความเหนือกว่าของพวกเขาว่าพวกเขาจะไม่รังเกียจที่จะหลอกล่อ coder และผู้ตรวจสอบ ผมพบว่ามันสนุกมาก :-)
Geek

0

นี่เป็นการปฏิบัติที่เป็นมาตรฐานในอุตสาหกรรม บริษัท ที่ฉันทำงานที่มีแนวทางการตรวจสอบโค้ดที่เข้มงวดมาก หนึ่งแม้จะไม่ยอมให้คุณกระทำเว้นแต่ว่าได้รับการตรวจสอบรหัสแล้ว

อย่าทำผิดกฎหมายหรือรู้สึกว่าถูกมอง คิดว่ามันเป็นเครือข่ายความปลอดภัยและประสบการณ์การเรียนรู้


0

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

ที่งานปัจจุบันของฉันฉันดูการเช็คอินจำนวนมากและสามวันที่ผ่านมาฉันพบข้อบกพร่องและแจ้งให้ผู้พัฒนาทราบ

การฝึกฝนนี้จะจับข้อบกพร่องและทำให้ทั้งทีมของคุณดีขึ้นถ้าคุณยอมรับมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.