คำถามติดแท็ก code-reviews

แท็กนี้มีไว้สำหรับคำถามเกี่ยวกับการฝึกฝนการตรวจสอบโค้ดและการแนะนำโค้ด สำหรับความคิดเห็นเกี่ยวกับโค้ดที่ใช้งานได้โปรดดูที่ http://codereview.stackexchange.com

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

2
เครื่องมือหรือเทคนิคใดที่มีประโยชน์สำหรับการอธิบายรหัสฐานที่ไม่คุ้นเคย [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เมื่อตรวจสอบรหัสที่ไม่คุ้นเคยด้วยตนเอง (เพื่อตรวจสอบหรือแก้ไข) ฉันดูเหมือนมีสามตัวเลือก การอ่านโค้ดจากบนลงล่างโดยเลือกไฟล์ต้นฉบับแต่ละไฟล์โดยดูว่าชื่อไฟล์พื้นฐานเป็นอย่างไร ฉันมักจะจบการอ่านเกือบทุกอย่าง บางไฟล์สองครั้ง อ่านกว้างแรกที่ฉันค้นหาและอ่านทุกวิธีที่กล่าวอ้างด้วยความเข้าใจน้อยที่สุด จากนั้นอ่านฟังก์ชั่นทั้งหมดที่ฟังก์ชั่นที่เรียกว่าและอื่น ๆ จิตสแต็คของฉันมีแนวโน้มที่จะล้นถ้าฉันทำให้มันสายไม่กี่ลึก การอ่านเชิงลึกครั้งแรกที่ฉันผ่านรหัสทั้งหมดในดีบักเกอร์ไม่แน่ใจว่าจะใช้เวลา 8 นาทีหรือ 8 ชั่วโมง เมื่อฉันได้อ่านพอของรหัสที่จะมีความเข้าใจที่มั่นคงเป็นธรรมของสิ่งที่มันทำฉันมักจะสะท้อนให้เห็นว่าผมเคยอ่าน 80% หรือมากกว่าของ codebase ในขณะที่รหัสพื้นฐานคือ 20% หรือน้อยกว่า ฉันเสียเวลาไปมาก เครื่องมือใดที่มีประโยชน์สำหรับการเข้าใจโค้ดที่ผิดปกติอย่างรวดเร็ว มีเครื่องมือใดบ้างที่สามารถให้ "ภาพรวม" ของเส้นทางโค้ดที่สำคัญและอนุญาตให้ฉันเจาะลึกรายละเอียดของส่วนใดส่วนหนึ่งได้หรือไม่

7
ความแตกต่างระหว่างการวิเคราะห์รหัสคงที่และการตรวจสอบรหัสคืออะไร?
ฉันแค่อยากรู้ว่าอะไรคือความแตกต่างระหว่างการวิเคราะห์โค้ดแบบสแตติกและการตรวจสอบโค้ด แต่ละคนทำกันอย่างไร โดยเฉพาะอย่างยิ่งมีเครื่องมืออะไรบ้างสำหรับการตรวจสอบโค้ด / การวิเคราะห์แบบคงที่ของ PHP ในวันนี้? ฉันต้องการทราบเกี่ยวกับเครื่องมือที่ดีสำหรับการตรวจสอบโค้ดสำหรับภาษาใด ๆ

4
มีอะไรผิดปกติในการส่งคืน hashtable จากวิธีสาธารณะและเมื่อไหร่ที่ควรทำเช่นนั้น
อะไรคือปัญหาการออกแบบในการคืนค่า hashtable จากวิธีสาธารณะเมื่อคุณต้องการคืนหลายรายการแทนที่จะสร้างคลาสและคืนค่าวัตถุของสิ่งนั้น หากมีปัญหาแล้วภายใต้สถานการณ์ใดที่เหมาะสมที่จะทำเช่นนั้น คำตอบของคำถามนี้เปลี่ยนไปอย่างไรขึ้นอยู่กับว่าภาษานั้นเป็นแบบไดนามิกหรือไม่? แก้ไข:นี่คือการชี้แจงว่าคีย์จะคงที่และเป็นส่วนหนึ่งของรหัสไม่ใช่ข้อมูล สิ่งที่เรามักจะสร้างชั้นเรียน คำถามคือทำไมการใช้ hashtable ไม่ถูกต้องหากสร้างคลาสจริง ๆ แล้วเป็นตัวเลือกที่ถูกต้อง

6
แนวทางการตรวจสอบโค้ดสำหรับ CSS, JS และ HTML
ฉันถูกขอให้สร้างแนวทางสำหรับการตรวจสอบ CSS, JS และ HTML ฉันรู้ว่ามีแนวทางการเข้ารหัสสำหรับ JS แต่ฉันไม่รู้เกี่ยวกับ HTML และ CSS ในการตรวจสอบ JS ฉันจะทำตามแนวทางเหล่านั้นอย่างแน่นอนและกล่าวถึงพวกเขา แต่ CSS และ HTML เป็นอย่างไร นอกเหนือจากข้อผิดพลาดเชิงตรรกะและปัญหาการเยื้องสิ่งใดที่ฉันต้องตรวจสอบเมื่อฉันตรวจสอบมาร์กอัปและหรือ CSS?

4
เหตุใดจึงไม่แนะนำให้มีคุณสมบัติแบบเซ็ตเท่านั้น
วันนี้ที่ทำงานเพื่อนร่วมงานคนหนึ่งของฉันตรวจสอบรหัสของฉันและแนะนำให้ฉันลบคุณสมบัติที่กำหนดเท่านั้นและใช้วิธีการแทน เมื่อเราทั้งคู่กำลังยุ่งกับสิ่งอื่นเขาบอกให้ฉันดูProperty Designหัวข้อจากหนังสือ "แนวทางการออกแบบกรอบงาน" ในหนังสือเล่มนี้ผู้เขียนพูดเพียงเพื่อหลีกเลี่ยง: คุณสมบัติที่มี setter ที่เข้าถึงได้กว้างกว่า getter และตอนนี้ฉันสงสัยว่าทำไมมันไม่แนะนำให้มีคุณสมบัติเป็นชุดเท่านั้น? บางคนสามารถอธิบายให้ฉันได้ไหม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.