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


11

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

อย่างไรก็ตามมีอีกค่ายหนึ่งที่กล่าวว่าการแสดงความคิดเห็นนั้นไร้ค่าในที่สุดหรือคุณค่าของมันนั้นน่าสงสัย ผู้เสนอการเข้ารหัสจำนวนมากโดยไม่แสดงความเห็นแย้งว่า:

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

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

อีกครั้งที่ Java API, Cocoa API, Android API ฯลฯ แสดงว่าหากคุณต้องการเขียนและดูแลรักษาเอกสารที่มีคุณภาพเป็นไปได้

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

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

คุณได้สะดุดกับบทความดังกล่าวและสิ่งที่เป็นผลของพวกเขาถ้ามี?


2
ฉันคิดว่านี่เป็นคำถามที่น่าสนใจอยู่แล้ว แต่ฉันไม่แปลกใจมากที่อาจถูกปิดที่นี่ นั่นเป็นเหตุผลที่ฉันโพสต์สิ่งนี้บน Quora ด้วยเช่นกัน
Behrang Saeedzadeh

4
@gnat - สำหรับฉันแล้วดูเหมือนว่า "มีการวิจัยอะไรบ้างในด้านการพัฒนาซอฟต์แวร์นี้" เป็นคำถามที่แตกต่างจากคำขอ "โปรดให้หนังสือเกี่ยวกับเรื่อง" ที่ไม่ได้รับการต้อนรับ
Josh Kelley

1
เพียงแค่อ่านชื่อ: ไม่มีการศึกษาเชิงประจักษ์เกี่ยวกับผลกระทบของสิ่งที่มีคุณภาพ หากมีเว็บไซต์นี้จะไม่อยู่
ร่าเริง

2
@Euphoric ข้อความทั้งสองของคุณขัดแย้งกัน หากเราเพิกเฉยต่อเอกสารเก่าที่ "บ้า" 30 ปีก็ไม่มีข้อขัดแย้ง แต่อย่างไรก็ตามเราไม่ควรเพิกเฉยต่อสิ่งที่ค้นพบเพียงเพราะมันเก่า แต่ก็ประเมินว่าพวกเขาเกี่ยวข้องกับงานยุคใหม่อย่างไร (เช่นเราควรได้ผลลัพธ์ใหม่)

3
@Eurhoric ฉันหวังว่าคุณจะโพสต์ว่าเป็นคำตอบดังนั้นฉันสามารถ downvote ขาดการวิจัยโดยรวมของคุณในการยืนยันผ้าห่มของคุณ มีเอกสารและการวิจัยมากมายเกี่ยวกับผลกระทบของเทคนิคต่างๆที่มีต่อคุณภาพซอฟต์แวร์ คุณเคยศึกษาเกี่ยวกับวิศวกรรมซอฟต์แวร์บ้างไหม?
Andres F.

คำตอบ:


9

ใน"ผลกระทบของการทำให้เป็นโมดูลและการแสดงความคิดเห็นต่อความเข้าใจในโปรแกรม" (1981), Woodfield, Dunsmore และ Shen พบว่า "วิชาที่โปรแกรมมีความคิดเห็นสามารถตอบคำถามได้มากกว่าที่ไม่มีความคิดเห็น"

อย่างไรก็ตามใน"การเรียนรู้การวัดความสามารถในการอ่านโค้ด" (2010), Raymond PL Buse และ Westley Weimer พบว่าความคิดเห็นมีผล จำกัด เฉพาะต่อความสามารถในการอ่านและคุณภาพ:

จากนามธรรม:

เราสร้างการวัดความสามารถในการอ่านอัตโนมัติและ ... แสดงให้เห็นว่าตัวชี้วัดนี้มีความสัมพันธ์อย่างยิ่งกับคุณภาพซอฟต์แวร์สามมาตรการ: การเปลี่ยนแปลงรหัสรายงานข้อบกพร่องอัตโนมัติและข้อความบันทึกข้อบกพร่อง ... ข้อมูลของเราแสดงให้เห็นว่า กว่าบรรทัดว่างธรรมดาเพื่อตัดสินการอ่านในท้องถิ่น

จากหน้า 12:

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

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


1
บทความของ Woodfield และคณะเป็นความคิดเห็นที่หลากหลายโดยเฉพาะอย่างยิ่งเทียบเท่ากับสิ่งที่เรียกว่า Javadoc: "โดยเฉพาะงานวิจัยนี้พยายามที่จะตัดสินว่าความคิดเห็นสั้น ๆ แทรกไว้ก่อนหน้าโมดูลตรรกะสามารถช่วยให้เข้าใจโดยการอธิบายฟังก์ชั่นสั้น ๆ ของโมดูลโลจิคัลและช่วยในการกำหนดขอบเขตของโมดูลโลจิคัล "

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