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

คำถามสำหรับแนวทางปฏิบัติที่ดีที่สุดสำหรับการเขียนโค้ดคุณภาพสูง

16
บล็อกอื่นเพิ่มความซับซ้อนของรหัสหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา นี่คือมากตัวอย่างง่าย นี่ไม่ใช่คำถามเฉพาะภาษาและฉันขอให้คุณเพิกเฉยต่อวิธีการอื่น ๆ ที่สามารถเขียนฟังก์ชันและการเปลี่ยนแปลงที่เกิดขึ้นได้ . สีเป็นประเภทที่ไม่ซ้ำกัน string CanLeaveWithoutUmbrella() { if(sky.Color.Equals(Color.Blue)) { return "Yes you can"; } else { return "No you can't"; } } ผู้คนจำนวนมากที่ฉันได้พบ ReSharper และผู้ชายคนนี้ (ซึ่งความคิดเห็นเตือนฉันฉันกำลังมองหาที่จะถามในขณะนี้) จะแนะนำการ refactoring รหัสเพื่อลบelseบล็อกออกจากนี้: (ฉันจำไม่ได้ว่าคนส่วนใหญ่พูดอะไรฉันอาจไม่ได้ถามอย่างอื่น) string CanLeaveWithoutUmbrella() { if(sky.Color.Equals(Color.Blue)) { return "Yes you can"; } return …

1
มีการแทนที่ที่ทันสมัยสำหรับเครื่องมือทดสอบการกลายพันธุ์เช่น Jester for Java หรือไม่?
“ ทำไมแค่คิดว่าการทดสอบของคุณดีเมื่อคุณรู้แน่? บางครั้งเจสเตอร์บอกการทดสอบของฉันว่าเป็นสุญญากาศ แต่บางครั้งการเปลี่ยนแปลงที่พบก็เกิดขึ้นราวกับสายฟ้าออกจากสีน้ำเงิน แนะนำเป็นอย่างยิ่ง” - Kent Beck แต่ฉันเห็นว่าไม่มีแม้แต่แท็กที่ชื่อว่า " Jester " ใน stackoverflow ดังนั้นสิ่งที่ทดแทนที่ทันสมัยสำหรับเจสเตอร์ถ้ามี? เราจะแน่ใจได้อย่างไรว่าการทดสอบหน่วยที่เขียนไว้นั้นมั่นคงกว่าการค้นหาสถิติจากการครอบคลุมโค้ดจากเครื่องมือเช่นCoberturaและClover ?

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

5
การตั้งชื่อเชิงพรรณนาเทียบกับ 80 บรรทัดอักขระ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบ เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมักจะได้ยินวิธีการเขียนโปรแกรมที่มีค่าทั้งสองนี้: (1) บรรทัดของรหัสควรเป็น 80 ตัวอักษรหรือน้อยกว่าและ (2) ใช้ชื่อที่สื่อความหมายสำหรับตัวแปรวิธีการชั้นเรียน ฯลฯ ฉันเข้าใจเหตุผลของคำแนะนำทั้งสองนี้ พวกเขาดูเหมือนจะแลกเปลี่ยนกันบ่อยครั้ง หากฉันเก็บรหัสของฉันไว้ต่ำกว่า 80 ตัวอักษร / บรรทัดฉันจะใช้ชื่อที่มีความหมายน้อยกว่า (โดยเฉพาะใน Python ที่แต่ละการเยื้องนับเป็น 4 ตัวอักษร) แต่ถ้าฉันใช้ชื่อที่มีความหมายมากขึ้น ดังนั้นคำถามของฉันคือคำแนะนำสองชิ้นนี้สำคัญกว่าที่จะต้องปฏิบัติตามหากต้องเลือกตัวเลือก ฉันสงสัยว่านี่เป็นโปรแกรมเมอร์อิสระ (มือสมัครเล่น) แต่ที่สำคัญกว่านั้นจากมุมมองของวิศวกรซอฟต์แวร์ที่ทำงานให้กับ บริษัท ขนาดใหญ่

5
มันตกลงสำหรับฟังก์ชั่นในการปรับเปลี่ยนพารามิเตอร์
เรามีชั้นข้อมูลที่ล้อมรอบ Linq กับ SQL ในชุดข้อมูลนี้เรามีวิธีนี้ (แบบง่าย) int InsertReport(Report report) { db.Reports.InsertOnSubmit(report); db.SubmitChanges(); return report.ID; } เมื่อส่งการเปลี่ยนแปลงรหัสรายงานจะได้รับการอัปเดตด้วยค่าในฐานข้อมูลที่เราส่งคืน จากด้านการโทรดูเหมือนว่านี้ (ย่อ) var report = new Report(); DataLayer.InsertReport(report); // Do something with report.ID เมื่อดูที่รหัส ID ได้รับการตั้งค่าภายในฟังก์ชั่น InsertReport ว่าเป็นผลข้างเคียงจากนั้นเราจะเพิกเฉยต่อค่าที่ส่งคืน คำถามของฉันคือฉันควรพึ่งพาผลข้างเคียงและทำสิ่งนี้แทน void InsertReport(Report report) { db.Reports.InsertOnSubmit(report); db.SubmitChanges(); } หรือเราควรป้องกันมัน int InsertReport(Report report) { var newReport = …

7
ตัวแทนภายในการลงคะแนนและตราสัญลักษณ์สามารถส่งเสริมแนวทางการเขียนโปรแกรมที่ดีได้หรือไม่
แค่คิดออกมาดัง ๆ - พวกเราโปรแกรมเมอร์ชอบทุกอย่างในการลงคะแนน / ตรา / ตัวแทนสิ่งนี้ดังนั้นรูปแบบนี้จะถูกนำไปใช้ในกระบวนการตรวจสอบรหัส บริษัท เพื่อส่งเสริมการเข้ารหัสที่ดีขึ้น สิ่งที่ต้องการ คุณ (หรือคนอื่น ๆ ในนามของคุณ) สามารถโพสต์ความเห็น (อาจเป็นตัวอย่าง, การกระทำเดียวหรือหลายชุด) สำหรับการตรวจสอบโค้ด คนอื่นสามารถแสดงความคิดเห็นได้ (คล้ายกับคำตอบใน SE) สามารถให้ / แนะนำป้าย (บางคนอาจดีบางคนอาจไม่ดีเช่น "Comment Desert" หรือบางอย่าง) คุณสามารถลงคะแนนขึ้น / ลงบนตัวรหัสและความคิดเห็นและป้าย (เช่นถ้ามีคนแนะนำป้ายและคุณทำ / ไม่เห็นด้วย) เป้าหมายของโครงการเช่นนี้จะเป็น แนะนำความสนุกเล็กน้อยเพื่อกระตุ้นการใช้บทวิจารณ์โค้ด ปรับปรุงคุณภาพ (ในรูปแบบนี้ทั้งผู้ตรวจสอบโค้ดและผู้ตรวจทานมีแนวโน้มที่จะเรียนรู้) ลดโอกาสของการวิจารณ์รหัสที่เกิดประกายไฟ 'ego wars' ให้ตัวชี้วัดเพื่อช่วยวัดประสิทธิภาพการทำงานของแต่ละบุคคล ใช้งานได้ไหม คิด?

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

8
หากคุณเรียนรู้วิธีการอย่างเป็นทางการสำหรับซอฟต์แวร์คุณพบว่ามีประโยชน์อย่างไร
หากคุณได้รับการฝึกอบรมการใช้วิธีการอย่างเป็นทางการ (FM) สำหรับการเขียนโปรแกรม: คุณพบว่ามีประโยชน์อย่างไร การฝึกอบรม FM ของคุณเกี่ยวข้องกับอะไร (เช่นหลักสูตรหนังสือ) คุณใช้เครื่องมือ FM ชนิดใด มีข้อได้เปรียบอะไรบ้างเกี่ยวกับความเร็ว / คุณภาพเมื่อเปรียบเทียบกับคุณที่ไม่ได้ใช้ FM คุณสร้างซอฟต์แวร์ประเภทใดด้วย FM และถ้าคุณไม่ใช้ FM โดยตรงในตอนนี้มันก็คุ้มค่าที่จะเรียนรู้หรือไม่? ฉันอยากรู้ว่าจะได้ยินประสบการณ์ / ความคิดเห็นเกี่ยวกับ FM มากเท่าที่จะพบได้ในชุมชนนี้ ฉันเริ่มอ่านมันและต้องการทราบข้อมูลเพิ่มเติม พื้นหลัง การเขียนโปรแกรมและการพัฒนาซอฟต์แวร์ / วิศวกรรมเป็นทักษะ / อาชีพใหม่ล่าสุดของมนุษย์บนโลกดังนั้นจึงไม่น่าแปลกใจที่สนามยังไม่สมบูรณ์ - ซึ่งแสดงให้เห็นในผลผลิตหลักของสาขาของเราเนื่องจากรหัสที่มักจะล่าช้าและผิดพลาด ยังไม่บรรลุนิติภาวะอุตสาหกรรมจะแสดงด้วยระยะขอบกว้าง (อย่างน้อย 10: 1) ในการผลิตระหว่างตัวแปลงสัญญาณเฉลี่ยและตัวเข้ารหัสสูงสุด ข้อเท็จจริงกลุ้มใจดังกล่าวจะครอบคลุมดีในวรรณคดีและแนะนำให้รู้จักกับหนังสือเช่นสตีฟ McConnell สมบูรณ์รหัส การใช้วิธีการอย่างเป็นทางการ (FM) ได้รับการเสนอโดยบุคคลสำคัญในซอฟต์แวร์ / CS (เช่นE Dijkstraตอนปลาย) ไปยังที่อยู่ …

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

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

3
การทดลองที่สัมพันธ์กับตัวชี้วัดโค้ดกับความหนาแน่นของบั๊ก
ฉันสงสัยว่ามีคนทำการทดลองบางอย่างที่สัมพันธ์กับตัวชี้วัดโค้ด (SLOC, Cyclomatic Complexity และอื่น ๆ ) ด้วยความหนาแน่นของข้อบกพร่องในแอปพลิเคชัน Object Oriented หรือไม่ ฉันไม่ได้กำลังมองหาการทดลองที่พิสูจน์หรือหักล้างความสัมพันธ์ แต่กับทั้งคู่ ฉันไม่ได้พยายามหา bullet เงินเพราะฉันเชื่อว่าความหนาแน่นของบั๊กของโครงการอาจสัมพันธ์กับตัวชี้วัดอย่างน้อยหนึ่งรายการสำหรับโครงการหรือทีมที่กำหนดและความสัมพันธ์สามารถเปลี่ยนแปลงได้ในช่วงอายุของโครงการ / ทีม เป้าหมายของฉันคือ วัดตัวชี้วัดที่น่าสนใจทั้งหมดสำหรับ 2-3 เดือน (เรามีโซนาร์ค่อนข้างน้อย) ค้นหาหนึ่งเมตริกที่สัมพันธ์กับจำนวนข้อบกพร่องใหม่ ทำการวิเคราะห์สาเหตุที่แท้จริงเพื่อตรวจสอบสาเหตุที่เกิดขึ้น (เช่นเราขาดทักษะการออกแบบบางอย่างหรือไม่) พัฒนาทักษะและการวัดการเปลี่ยนแปลงสำหรับคู่ของมัน ล้างและทำซ้ำจาก 2 หากคุณไม่มีประสบการณ์เกี่ยวกับเรื่องนี้ แต่จำไว้ว่าให้ดูกระดาษ / บล็อกเกี่ยวกับเรื่องนี้ฉันจะขอบคุณถ้าคุณสามารถแบ่งปันได้ จนถึงตอนนี้ฉันได้พบลิงค์ต่อไปนี้พร้อมข้อมูลบางอย่างเกี่ยวกับเรื่องนี้ บักอาศัยอยู่ในรหัสที่ซับซ้อน? - เพียงสไลด์จากงานนำเสนอ การเปลี่ยนแปลงและข้อบกพร่อง: การขุดและทำนายกิจกรรมการพัฒนา - เพียงแค่สไลด์การนำเสนอ บรรทัดล่างยิ่งมีการพึ่งพามากเท่าไหร่โอกาสในการเกิดข้อผิดพลาดก็สูงขึ้น (ฉันคิดว่านี่เป็นกฎทั่วไป) ความล้มเหลวเป็นคำสี่ตัวอักษร - เป็นเรื่องเกี่ยวกับความสัมพันธ์ระหว่างข้อบกพร่องและตัวชี้วัด

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

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

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

6
เราควรแยกรหัสสำหรับการวิเคราะห์ความครอบคลุมรหัสหรือไม่
ฉันทำงานกับแอพพลิเคชั่นหลายตัว ปัจจุบันการครอบคลุมโค้ดของพวกเขาค่อนข้างต่ำ: โดยทั่วไประหว่าง 10 และ 50% ตั้งแต่หลายสัปดาห์เราได้พูดคุยกับทีมงานบังกาลอร์ (ส่วนหลักของการพัฒนาในต่างประเทศในอินเดีย) เกี่ยวกับการยกเว้นแพคเกจหรือคลาสสำหรับ Cobertura (เครื่องมือครอบคลุมรหัสของเราแม้ว่าเราจะย้ายไปที่ JaCoCo) มุมมองของพวกเขามีดังต่อไปนี้เนื่องจากพวกเขาจะไม่เขียนการทดสอบหน่วยใด ๆ ในบางเลเยอร์ของแอปพลิเคชัน(1)เลเยอร์เหล่านี้ควรแยกออกจากการวัดความครอบคลุมของรหัส ในคำพูดของคนอื่น ๆ ที่พวกเขาต้องการที่จะ จำกัด การวัดความคุ้มครองรหัสเพื่อรหัสที่มีการทดสอบหรือควรจะทดสอบ นอกจากนี้เมื่อพวกเขาทดสอบหน่วยการเรียนสำหรับคลาสที่ซับซ้อนประโยชน์ที่ได้รับซึ่งล้วน แต่ครอบคลุมในเรื่องการครอบคลุมโค้ดนั้นจะไม่ถูกสังเกตเห็นในแอปพลิเคชันขนาดใหญ่ การลดขอบเขตของการครอบคลุมโค้ดจะทำให้ความพยายามในลักษณะนี้ชัดเจนยิ่งขึ้น ... ที่น่าสนใจของวิธีนี้คือการที่เราจะมีมาตรการคุ้มครองรหัสที่บ่งชี้ว่าสถานะปัจจุบันของส่วนหนึ่งของโปรแกรมที่เราพิจารณาเป็นทดสอบ อย่างไรก็ตามมุมมองของฉันคือเรากำลังแกล้งทำตัวเลข โซลูชันนี้เป็นวิธีที่ง่ายในการเข้าถึงระดับการครอบคลุมโค้ดที่สูงขึ้นโดยไม่ต้องใช้ความพยายามใด ๆ อีกประเด็นหนึ่งที่ทำให้ฉันรำคาญใจคือ: ถ้าเราแสดงความครอบคลุมที่เพิ่มขึ้นจากหนึ่งสัปดาห์ไปอีกหนึ่งสัปดาห์เราจะบอกได้อย่างไรว่าข่าวดีนี้เกิดจากการทำงานที่ดีของนักพัฒนาหรือเกิดจากการยกเว้นใหม่ นอกจากนี้เราจะไม่สามารถทราบได้อย่างชัดเจนถึงสิ่งที่ถูกพิจารณาในการวัดความครอบคลุมโค้ด ตัวอย่างเช่นถ้าฉันมี 10,000 เส้นของการประยุกต์ใช้รหัสที่มี 40% ของความคุ้มครองรหัสผมสามารถหักค่าใช้จ่ายที่ 40% ของฐานรหัสของฉันมีการทดสอบ(2) แต่จะเกิดอะไรขึ้นถ้าเราตั้งค่าการยกเว้น หากรหัสครอบคลุมอยู่ในขณะนี้ 60% ฉันจะหักอะไรได้แน่ มีการทดสอบ 60% ของรหัสฐาน "สำคัญ" ของฉันหรือไม่ ฉันสามารถ เท่าที่ฉันเป็นห่วงฉันชอบที่จะรักษาคุณค่าของรหัส "ของจริง" …

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