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

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

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

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

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

3
แนวทางและแนวทางปฏิบัติที่ดีสำหรับการตรวจสอบรหัสที่จำเป็น [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา เรากำลังลองใช้การตรวจสอบรหัสที่จำเป็นสำหรับการกระทำแต่ละครั้ง - ไม่มีสิ่งใดที่จะเป็นความลับที่ไม่ได้รับการตรวจสอบโดยอย่างน้อย 1 คนไม่ใช่ผู้เขียน - สำหรับการวิ่งสองสามครั้ง เราได้ซื้อจากทั้งนักพัฒนาและผู้บริหาร (ซึ่งเป็นสถานการณ์ที่น่าทึ่งที่ต้องอยู่ใน) และเราต้องการได้รับผลประโยชน์ที่เป็นที่รู้จัก: ลดข้อผิดพลาดที่เห็นได้ชัด การรับรู้มากขึ้นเกี่ยวกับการเปลี่ยนแปลงที่เกิดขึ้นรอบ ๆ โครงการ "ฉันรู้ว่ามีคนกำลังมองดูสิ่งนี้อยู่ดังนั้นฉันจะไม่ขี้เกียจ" / เอฟเฟกต์ต่อต้านคาวบอย เพิ่มความสอดคล้องภายใน / ข้ามโครงการ แต่เรากำลังแนะนำสิ่งที่เป็นที่รู้จักกันเพื่อลดความเร็วและหากทำผิดอาจสร้างขั้นตอนที่โง่เขลาในขั้นตอนการคอมมิชชันที่ไม่ได้ทำอะไรเลยนอกจากใช้เวลา สิ่งที่ฉันกังวลเกี่ยวกับ: ความคิดเห็นที่พัฒนาไปสู่การหยิบจู้จี้ (ซึ่งเกินความจริง) ผู้คนเปิดประเด็นทางสถาปัตยกรรมขนาดใหญ่โดยเป็นส่วนหนึ่งของการทบทวนสองบรรทัด ฉันไม่ต้องการอคติกับคำตอบอย่างอื่น ในขณะที่เราทุกคนเป็นคนสมเหตุสมผลและเราจะทำการวิเคราะห์ตนเองมากมายเราสามารถใช้ข้อมูลเชิงลึกที่ได้รับจากการต่อสู้กับสิ่งที่เราควรพยายามทำให้สำเร็จในช่วงการตรวจทานเพื่อให้บทวิจารณ์ได้ผลจริงสำหรับเรา . แนวทางและนโยบายบางประการที่คุณพบว่าทำงานได้อย่างไร

10
คำสั่ง SQL ทุกคำสั่งจะต้องได้รับการตรวจสอบโดย DBA
ฉันหมายถึงทุกสิ่งไม่ใช่แค่การเปลี่ยนแปลงคีมา แม้แต่ SELECT อย่างง่ายบนคีย์หลักก็ไม่สามารถทำการผลิตได้แม้ว่ามันจะได้รับการตรวจสอบโค้ดโดยผู้พัฒนาคนอื่น ๆ (ในบริบท) โดยไม่มีการตรวจสอบ DBA ของทุกคำสั่งสกัดจากโค้ดและส่งด้วย EXPLAIN รายละเอียด ความถี่ที่จะถูกเรียก ฯลฯ และอื่น ๆ หากคุณอยู่ในสภาพแวดล้อมเช่นนี้คุณคิดว่ามันเป็นกำไรสุทธิหรือเป็นการพัฒนาที่ดีอยู่ใช่ไหม ในฐานะคนที่ทำงานกับฐานข้อมูลเชิงสัมพันธ์มานานหลายปีฉันพบว่าทัศนคติ "ผู้พัฒนาไม่สามารถเชื่อถือได้ในการใช้ฐานข้อมูล" ที่ไม่ได้รับการรับรองและฉันอยากรู้ว่าสถานการณ์นี้เป็นอย่างไร สำหรับสิ่งที่คุ้มค่านี่เป็นเพียงการพัฒนาเว็บไม่ใช่สิ่งที่สำคัญ
11 code-reviews  dba 

4
วิธีจัดทำเอกสารและสอนผู้อื่น“ เพิ่มประสิทธิภาพจนเกินกว่าจะจดจำ” โค้ดที่ต้องใช้การคำนวณอย่างเข้มข้น?
บางครั้งมีโค้ด 1% ที่เข้มข้นในการคำนวณเพียงพอที่ต้องการการเพิ่มประสิทธิภาพระดับต่ำที่สุดที่หนักที่สุด ตัวอย่างคือการประมวลผลวิดีโอการประมวลผลภาพและการประมวลผลสัญญาณทุกชนิดโดยทั่วไป เป้าหมายคือเพื่อจัดทำเอกสารและสอนเทคนิคการปรับให้เหมาะสมเพื่อให้โค้ดไม่สามารถกลายเป็นสิ่งที่ไม่สามารถทำลายได้และมีแนวโน้มที่จะถูกลบออกโดยนักพัฒนาซอฟต์แวร์รุ่นใหม่ (*) (*) แม้จะมีความเป็นไปได้ว่าการเพิ่มประสิทธิภาพเฉพาะนั้นไม่มีประโยชน์อย่างสมบูรณ์ในซีพียูที่คาดเดาไม่ได้ในอนาคตเช่นนั้นรหัสจะถูกลบต่อไป พิจารณาว่าข้อเสนอซอฟต์แวร์ (เชิงพาณิชย์หรือโอเพ่นซอร์ส) รักษาความได้เปรียบในการแข่งขันโดยมีรหัสที่เร็วที่สุดและใช้ประโยชน์จากสถาปัตยกรรมซีพียูใหม่ล่าสุดผู้เขียนซอฟต์แวร์มักจะต้องปรับแต่งโค้ดเพื่อให้ทำงานได้เร็วขึ้นในขณะเดียวกัน task, whlist ที่ยอมรับข้อผิดพลาดในการปัดเศษจำนวนเล็กน้อย โดยทั่วไปผู้เขียนซอฟต์แวร์สามารถเก็บฟังก์ชันหลาย ๆ เวอร์ชันไว้เป็นเอกสารของการเพิ่มประสิทธิภาพ / การเขียนอัลกอริทึมใหม่ที่เกิดขึ้น ใครทำให้รุ่นเหล่านี้พร้อมให้ผู้อื่นศึกษาเทคนิคการปรับให้เหมาะสมได้อย่างไร ที่เกี่ยวข้อง: ทำความสะอาดโค้ดที่อ่านได้และโค้ดที่อ่านยากอย่างรวดเร็ว เมื่อข้ามเส้น?

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

4
ฉันจะปิดบริการได้อย่างไรจึงง่ายขึ้น
เรามีการพึ่งพาบริการของบุคคลที่สามซึ่งแสดงถึงอินเทอร์เฟซขนาดมหึมาซึ่งเราต้องการเพียง 3 วิธีเท่านั้น นอกจากนี้อินเทอร์เฟซเปลี่ยนบ่อย ... ฉันตัดสินใจที่จะรวมส่วนต่อประสานในชั้นเรียนในโครงการของเราและเปิดเผยวิธีการที่เราต้องการเท่านั้น แต่ผมไม่แน่ใจว่าผมควรจะจัดการกับค่าส่งกลับ ... Storageอินเตอร์เฟซที่ส่งกลับวัตถุของการพิมพ์ เราภายในมีชนิดซึ่งเป็นตัวแทนของเราภายในของStorageModelStorage สิ่งที่คุณจะกลับมาใน mapper นี้StorageหรือStorageModel? เรามี DataService StorageServiceซึ่งได้รับการพึ่งพาของ wrapper injected ขณะนี้ฉันกำลังทำมันโดยทั่วไปดังนี้: public class StorageService { private readonly IExternalStorageWrapper externalStorageWrapper; public StorageService(IExternalStorageWrapper externalStorageWrapper) { this.externalStorageWrapper = externalStorageWrapper; } public StorageModel GetStorage(int storageId) { return this.externalStorageWrapper.GetStorage(storageId).ConvertToStorageModel(); } } public class ExternalStorageWrapper : IExternalStorageWrapper { …

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

4
ทำใหม่ฟังก์ชั่นกลับรหัสจำนวนเต็มที่แสดงถึงสถานะที่แตกต่างกัน
ฉันได้รับรหัสอันยิ่งใหญ่ที่ฉันได้รวมตัวอย่างสั้น ๆ ของด้านล่าง มีชื่อสำหรับรูปแบบการต่อต้านนี้โดยเฉพาะหรือไม่? มีคำแนะนำอะไรบ้างสำหรับการปรับโครงสร้างนี้ // 0=Need to log in / present username and password // 2=Already logged in // 3=Inactive User found // 4=Valid User found-establish their session // 5=Valid User found with password change needed-establish their session // 6=Invalid User based on app login // 7=Invalid User based …

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

6
จะประเมินคุณภาพของรหัสได้อย่างไรเมื่อคุณไม่คุ้นเคยกับภาษา [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ตามสมมติฐานแล้วถ้าฉันต้องสัมภาษณ์ตำแหน่งนักพัฒนา PHP ใหม่เมื่อประสบการณ์ของฉันอยู่ใน. NET ฉันจะทราบได้อย่างไรว่าตัวอย่างโค้ดที่พวกเขาให้มานั้นมีประสิทธิภาพและคุณภาพดีหรือไม่? วิธีที่ดีที่สุดในการประเมินโค้ดของโปรแกรมเมอร์คือถ้าคุณไม่คุ้นเคยกับภาษา

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

5
ควรทำการตรวจสอบโค้ดก่อนหรือหลังการทดสอบหน่วย
ฉันกำลังถกเถียงกับเพื่อนร่วมงานของฉันในเวลาที่จะทำการตรวจสอบโค้ด - ก่อนหรือหลังการทดสอบหน่วย การปฏิบัติที่ดีที่สุดคืออะไร? ปัจจัยบางประการที่เราอาจต้องคำนึงถึง (อาจมีมากกว่านี้): ขนาดของการเปลี่ยนแปลงรหัส - การเปลี่ยนแปลงครั้งใหญ่หมายถึงการเปลี่ยนแปลงเพิ่มเติมจะเกิดขึ้นจากการตรวจสอบรหัส หากการเปลี่ยนแปลงเหล่านี้มีขนาดใหญ่กว่าถ้าเป็น UT ก่อนการตรวจสอบโค้ดคุณจะต้องทำซ้ำ UT ส่วนใหญ่อีกครั้ง เวลาที่ใช้ในการทดสอบหน่วย มันเป็นฟังก์ชั่นใหม่หรือการแก้ไขข้อบกพร่อง

3
เตรียมพร้อมสำหรับการตรวจสอบรหัสในฐานะนักพัฒนาหรือไม่
ฉันกำลังมองหาแนวคิดบางอย่างที่นี่ ฉันอ่านบทความการตรวจสอบโค้ดควรดำเนินการอย่างไรและตรวจสอบโค้ดมีประโยชน์อย่างไร ซึ่งมีข้อมูลมาก แต่ฉันยังต้องการความชัดเจนมากขึ้นสำหรับคำถามด้านล่าง คำถามของฉันคือ ในฐานะนักพัฒนาเป้าหมายคุณสามารถแนะนำวิธีปฏิบัติที่ดีที่สุดบางประการที่นักพัฒนาสามารถรวมไว้ก่อนที่โค้ดของเขาจะได้รับการตรวจสอบ ขณะนี้ฉันฝึกวิธีการดังต่อไปนี้ PPT สำหรับการไหลแบบลอจิคัล ความคิดเห็นรายละเอียด ปัญหา: แม้ว่าฉันได้ปฏิบัติตามแนวทางข้างต้นแล้วพวกเขาไม่ได้ช่วยในการตรวจสอบ ปัญหาที่ฉันเผชิญคือเมื่อมีการอ้างเหตุผลบางอย่างฉันค้นหาการใช้งานและการไหลและเวลามากเกินไปเสียเวลาในกระบวนการและฉันได้รับในใจของผู้คน ฉันคิดว่านักพัฒนาจำนวนมากจะต้องผ่านสิ่งที่ฉันกำลังจะผ่านเช่นกัน
10 c#  code-reviews 

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