ฉันควรยืนยันว่าเราทำการตรวจสอบโค้ดก่อนรวมกลับไปที่ลำต้นหรือไม่


10

ร้องขอโพสต์ใหม่จาก StackOverflow:

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

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

ความกังวลของฉันคือนักพัฒนาคนอื่นเขียนโค้ดที่น่าเกลียด: มักจะทำลาย encapsulation การเขียนคลาสขนาดใหญ่เพิ่มคลาสภายในที่แปลก ๆ มีการทดสอบหน่วยน้อยหรือไม่มีเลยเป็นต้น ในที่สุดมันจะเป็นไปไม่ได้ที่จะพัฒนาเครื่องมือเพิ่มเติม

ฉันควรยืนยันว่าเราทำการตรวจสอบโค้ดก่อนที่จะรวมกลับไปที่ลำต้นหรือฉันเป็นเพียงสุนัขตัวเมียที่มีคุณภาพรหัส?


3
"เมื่อเรามีเวลา จำกัด ในการพัฒนาเราควรตัดมุมแบบนั้น" -> "คุณสามารถจ่ายเงินให้ฉันตอนนี้หรือคุณสามารถจ่ายเงินให้ฉันภายหลัง" ฉันถูก bitching สำหรับการตรวจสอบรหัสและการทดสอบหน่วยเป็นเวลาสองปีครึ่งและได้รับคำตอบเดียวกันเสมอ แน่นอนว่าตอนนี้เรามีโค้ดหลายพันบรรทัดแล้ว "การตัดมุม" ทั้งหมดกลับมาหลอกหลอนเรา
MetalMikester

สถานการณ์จะดีขึ้นเมื่อคนมีประสบการณ์มากขึ้น
rwong

คำตอบ:


2

ฉันเคยอยู่ในสถานการณ์ที่คล้ายกันมาก่อนและ imho มันขึ้นอยู่กับ "ฉันจะต้องรักษารหัส"

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

เมื่ออ่านสิ่งนี้:

ความกังวลของฉันคือนักพัฒนาคนอื่นเขียนโค้ดที่น่าเกลียด: มักจะทำลาย encapsulation การเขียนคลาสขนาดใหญ่เพิ่มคลาสภายในที่แปลก ๆ มีการทดสอบหน่วยน้อยหรือไม่มีเลยเป็นต้น ในที่สุดมันจะเป็นไปไม่ได้ที่จะพัฒนาเครื่องมือเพิ่มเติม

ฉันคิดว่าปัญหาของคุณใหญ่กว่าโค้ดรีวิว ดูเหมือนว่าคุณจะขาดหลักเกณฑ์เล็กน้อยและ / หรือไม่ปฏิบัติตาม ไม่มีการทดสอบหน่วย / ไม่กี่อาจเป็นความคิดที่ไม่ดี แต่ขึ้นอยู่กับกรณีเฉพาะ อย่างไรก็ตามbreaking encapsulation, writing huge classes, ...ทำรหัสข้อผิดพลาดได้ง่ายเพื่อที่จะได้รับการแก้ไขอย่างแน่นอน


6

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

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

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


3

หากโปรแกรมที่เป็นปัญหาไม่ใช่ต้นแบบการปล่อยทิ้งครั้งเดียวฉันคิดว่าการตรวจสอบโค้ดควรมีผลบังคับใช้สำหรับทุกการเช็คอิน

นักพัฒนาอาวุโสอาจมีสิทธิ์เช็คอินที่ไม่ผ่านการตรวจสอบเมื่อพวกเขารู้ตัวว่ามีสติพอที่จะขอให้มีการตรวจสอบตามความเหมาะสม


1

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

คุณจะต้อง: กำหนดมาตรฐานดูแลผู้กระทำผิดที่สำคัญให้ละเอียดยิ่งขึ้นและใส่เข้าไปในหัวของพวกเขาว่ารหัสที่ดีไม่จำเป็นต้องใช้เวลาในการเขียนมากขึ้น พวกเขาต้องหยุดใช้ไทม์ไลน์เป็นข้ออ้างในการปฏิเสธที่จะเปลี่ยนนิสัยที่ไม่ดี

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