Чи є якісь емпіричні дослідження щодо впливу коментування вихідного коду на якість програмного забезпечення, ремонтопридатність та продуктивність розробників? [зачинено]


11

Я прихильник коментування вихідного коду та документування програмних продуктів. Це мій особистий досвід і спостереження, що робота над вихідним кодом, який суворо коментується, допомогла мені по-різному, коли мені довелося вирощувати програмне забезпечення або підтримувати його.

Однак є ще один табір, який говорить, що коментувати в кінцевому рахунку нічого не вартий або його значення сумнівне. Численні прихильники кодування без коментарів стверджують, що:

  • Якщо фрагмент коду добре написаний, він пояснює себе, тому коментувати його не потрібно
  • Якщо фрагмент коду не є роз'яснювальним, тоді переробляйте його та зробіть його зрозумілим, щоб він не потребував коментарів
  • Ваш тестовий набір - це ваша жива документація
  • З часом код і коментарі виходять із синхронізації, і це стає ще одним джерелом головних болів
  • Agile каже, що робочий код важливіший за купу документації, тому ми можемо сміливо ігнорувати написання коментарів

Для мене це просто догма. Знову ж таки, моє особисте зауваження - це те, що програмне забезпечення, написане командами розумних та досвідчених розробників, врешті-решт має значну кількість коду, що не пояснює себе.

Знову ж таки, API Java, API какао, Android API тощо показують, що якщо ви хочете написати та підтримувати якісну документацію, це можливо.

Сказавши все це, розмови про плюси і мінуси документації та коментування вихідного коду, які базуються на особистих переконаннях, зазвичай не закінчуються добре і не призводять до невідповідних висновків.

Як такий, я шукаю наукові праці та емпіричні дослідження щодо впливу програмної документації, особливо коментування вихідного коду, на її якість та ремонтопридатність, а також на їх вплив на продуктивність команди.

Чи натрапили ви на такі статті, і який результат був від них, якщо вони є?


2
Я думаю, що це все одно цікаве питання, але я не дуже здивований, що це може закритися тут. Тому я також розмістив це на Quora.
Behrang Saeedzadeh

4
@gnat - Мені здається, "Які дослідження були проведені в цьому аспекті в галузі розробки програмного забезпечення?" - це зовсім інше питання, ніж запити "будь ласка, дай мені книги на тему", які не дуже бажані.
Джош Келлі

1
Тільки з читання заголовка: Не існує емпіричних досліджень про вплив будь-якого на якість. Якби вони були, цей сайт не існував би.
Ейфорія

2
@Euphoric ваші два твердження суперечать одне одному. Якщо ми ігноруємо "божевільний" 30-річний документ, конфлікту немає. Але в будь-якому випадку, ми не повинні ігнорувати висновки лише тому, що вони старі, але критично оцінюють, як вони ставляться до сучасної роботи (як і ми повинні з новими результатами).

3
@Euphoric Я б хотів, щоб ви опублікували це як відповідь, тому я можу спростувати вашу повну відсутність досліджень у вашому твердженні. Існує багато статей та досліджень, емпіричних та інших, про вплив різних методик на якість програмного забезпечення. Чи вивчали ви щось із інженерії програмного забезпечення?
Андрес Ф.

Відповіді:


9

У "Ефект модуляризації та коментарів на розуміння програми" (1981) Вудфілд, Дансмор та Шен виявили, що "суб'єкти, програми яких містили коментарі, могли відповісти на більше запитань, ніж ті, без коментарів".

Однак, в "Навчання метриці для читабельності коду" (2010), Реймонд PL Buse та Westley Weimer виявили, що коментарі мають лише обмежений вплив на читабельність та якість:

З реферату:

Ми побудуємо автоматизований захід читання і ... показуємо, що ця метрика сильно співвідноситься з трьома заходами якості програмного забезпечення: зміни коду, автоматизовані звіти про дефекти та повідомлення про дефекти журналу ... Наші дані говорять про те, що коментарі самі по собі є менш важливими. ніж прості порожні рядки до локальних суджень про читабельність.

З сторінки 12:

Ми виявили, що коментарі лише коректно співвідносяться з поняттям читачів наших анотаторів (33% відносної потужності). Одним із висновків може бути те, що, хоча коментарі можуть підвищити читабельність, вони, як правило, використовуються в сегментах коду, які почали менш читатими: коментар та нечитабельний код ефективно врівноважуються. Очевидним ефектом може бути те, що коментарі не завжди самі по собі свідчать про високу чи низьку читабельність.

Майте на увазі, що прихильники "кодування без коментування" не кажуть, що код без коментарів краще, ніж код з коментарями. Вони стверджують, що конкретний стиль коду без коментарів - той, який витягує код в методи із самоописуючими іменами, той, що вводить пояснювальні змінні , той, що має гарний тестовий набір, - краще, ніж код, який не робить цього але є коментарі. Це може ускладнити застосування будь-яких досліджень, які були зроблені.


1
Документ Вудфілда та співавторів стосується певної різноманітності коментарів, приблизно еквівалентної тому, що зараз би називався Javadoc: "Конкретно, це дослідження намагається визначити, чи короткі коментарі, вставлені перед логічним модулем, можуть допомогти зрозуміти, коротко описуючи функцію. логічного модуля та допомагає визначити межі логічного модуля. "

Я мав би додати на той час: це не означає, що це не має значення, адже це цікаве і добре сконструйоване дослідження. Я просто подумав, що потрібно сказати, що вони не беруться за всі коментарі.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.