หลังจากปัญหาคุณภาพที่ร้ายแรงในปีที่ผ่านมา บริษัท ของฉันเพิ่งเปิดตัวบทวิจารณ์โค้ด กระบวนการตรวจสอบโค้ดได้รับการแนะนำอย่างรวดเร็วโดยไม่มีหลักเกณฑ์หรือรายการตรวจสอบใด ๆ
นักพัฒนาอีกคนและฉันที่เลือกที่จะตรวจสอบการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับระบบก่อนที่พวกเขาจะถูกรวมเข้ากับลำต้น
เรายังได้รับเลือกให้เป็น "หัวหน้าฝ่ายเทคนิค" ซึ่งหมายความว่าเรามีความรับผิดชอบต่อคุณภาพของรหัส แต่เราไม่มีสิทธิ์ใด ๆ ในการดำเนินการเปลี่ยนแปลงในกระบวนการกำหนดผู้พัฒนาใหม่หรือระงับโครงการ
ในทางเทคนิคเราสามารถปฏิเสธการรวมทำให้มันกลับไปสู่การพัฒนา ในความเป็นจริงสิ่งนี้จะจบลงบ่อยครั้งที่หัวหน้าของเราเรียกร้องให้ส่งมอบตรงเวลา
ผู้จัดการของเราคือปริญญาโทบริหารธุรกิจซึ่งส่วนใหญ่เกี่ยวข้องกับการสร้างตารางเวลาของโครงการที่จะเกิดขึ้น ในขณะที่เขากำลังพยายามเขาแทบไม่รู้เลยว่าซอฟต์แวร์ของเราทำอะไรจากมุมมองทางธุรกิจและพยายามดิ้นรนเพื่อทำความเข้าใจแม้กระทั่งความต้องการขั้นพื้นฐานของลูกค้าโดยไม่มีคำอธิบายจากนักพัฒนา
ในปัจจุบันการพัฒนานั้นดำเนินการในสาขาการพัฒนาใน SVN หลังจากนักพัฒนาคิดว่าเขาพร้อมเขามอบหมายตั๋วในระบบตั๋วของเราให้กับผู้จัดการของเรา จากนั้นผู้จัดการมอบหมายให้เรา
บทวิจารณ์โค้ดนั้นนำไปสู่ความตึงเครียดภายในทีมของเรา โดยเฉพาะอย่างยิ่งสมาชิกเก่าบางคนถามถึงการเปลี่ยนแปลง (เช่น "เราทำแบบนี้เสมอ" หรือ "ทำไมวิธีการควรมีชื่อที่สมเหตุสมผลฉันรู้ว่ามันทำอะไร?")
หลังจากสองสามสัปดาห์แรกเพื่อนร่วมงานของฉันเริ่มปล่อยให้สิ่งต่าง ๆ ไม่ทำให้เกิดปัญหากับเพื่อนร่วมงาน (เธอบอกกับตัวเองว่าหลังจากลูกค้าแจ้งข้อผิดพลาดแล้วเธอก็รู้ถึงข้อผิดพลาด แต่กลัวว่า นักพัฒนาจะโกรธเธอที่ชี้ให้เห็น)
ในทางกลับกันตอนนี้ฉันรู้แล้วว่าเป็นลาเพื่อชี้ให้เห็นปัญหาเกี่ยวกับรหัสที่ได้ตกลงไว้
ฉันไม่คิดว่ามาตรฐานของฉันสูงเกินไป
รายการตรวจสอบของฉันในขณะนี้คือ:
- รหัสจะรวบรวม
- มีอย่างน้อยหนึ่งวิธีที่รหัสจะทำงานได้
- รหัสจะทำงานกับกรณีปกติส่วนใหญ่
- รหัสจะทำงานกับกรณีขอบส่วนใหญ่
- รหัสจะมีข้อยกเว้นที่สมเหตุสมผลหากข้อมูลที่ใส่ไม่ถูกต้อง
แต่ฉันยอมรับความรับผิดชอบอย่างเต็มที่ในวิธีที่ฉันให้ข้อเสนอแนะ ฉันได้ให้คะแนนที่สามารถดำเนินการได้เพื่ออธิบายว่าทำไมบางสิ่งจึงควรมีการเปลี่ยนแปลงบางครั้งแม้แต่เพียงถามว่าทำไมบางสิ่งจึงถูกนำไปใช้ในทางที่เฉพาะเจาะจง เมื่อฉันคิดว่ามันไม่ดีฉันชี้ให้เห็นว่าฉันจะต้องพัฒนามันในอีกทางหนึ่ง
สิ่งที่ฉันขาดคือความสามารถในการค้นหาสิ่งที่ชี้ให้เห็นว่า "ดี" ฉันอ่านว่าควรพยายามทำข่าวร้ายในข่าวประเสริฐ
แต่ฉันมีเวลายากที่จะหาสิ่งที่ดี "เฮ้คราวนี้คุณทำทุกสิ่งที่คุณทำจริง ๆ " จะช่วยวางตัวดีกว่าหรือดีกว่า
ตัวอย่างรหัสตรวจสอบ
เฮ้โจ
ฉันมีคำถามบางอย่างเกี่ยวกับการเปลี่ยนแปลงของคุณใน Library \ ACME \ ExtractOrderMail Class
ฉันไม่เข้าใจว่าทำไมคุณทำเครื่องหมาย "TempFilesToDelete" เป็นแบบคงที่หรือไม่ ในขณะนี้การเรียก "GetMails" ครั้งที่สองจะทำให้เกิดข้อยกเว้นเนื่องจากคุณเพิ่มไฟล์ลงไป แต่ไม่ลบออกหลังจากที่คุณลบออก ฉันรู้ว่าฟังก์ชั่นนี้ถูกเรียกเพียงครั้งเดียวต่อการรัน แต่ในอนาคตอาจมีการเปลี่ยนแปลง คุณสามารถทำให้มันเป็นตัวแปรอินสแตนซ์จากนั้นเราอาจมีหลายวัตถุในแบบคู่ขนาน
... (ประเด็นอื่น ๆ ที่ไม่สามารถใช้งานได้)
คะแนนรอง:
- ทำไม "GetErrorMailBody" จึงรับการยกเว้นเป็นพารามิเตอร์ ฉันพลาดอะไรไปหรือเปล่า? คุณไม่ได้โยนข้อยกเว้นคุณเพียงแค่ผ่านมันไปและเรียกว่า "ToString" ทำไมถึงเป็นอย่างนั้น?
- SaveAndSend ไม่ใช่ชื่อที่ดีสำหรับเมธอด เมธอดนี้ส่งเมลข้อผิดพลาดหากการประมวลผลเมลผิดพลาด คุณสามารถเปลี่ยนชื่อเป็น "SendErrorMail" หรืออะไรที่คล้ายกันได้หรือไม่
- โปรดอย่าเพียงแค่แสดงความคิดเห็นรหัสเก่าลบมันออกทันที เรายังมีมันอยู่ในการโค่นล้ม