Esistono studi empirici sugli effetti del commentare il codice sorgente sulla qualità del software, sulla manutenibilità e sulla produttività degli sviluppatori? [chiuso]

11

Sono un sostenitore di commentare il codice sorgente e documentare i prodotti software. È mia personale esperienza e osservazione che lavorare su un codice sorgente rigorosamente commentato mi ha aiutato in diversi modi quando ho dovuto sviluppare software o mantenerlo.

Tuttavia c'è un altro campo in cui il commento è in definitiva privo di valore o il suo valore è discutibile. Numerosi sostenitori della codifica senza commenti sostengono che:

  • Se una parte di codice è ben scritta, è auto-esplicativa e quindi non ha bisogno di commenti
  • Se una parte di codice non è auto-esplicativa, quindi la si rifatta e la rende auto-esplicativa in modo che non abbia bisogno di commenti
  • La tua suite di test è la tua documentazione live
  • Il codice temporale e i commenti non sono sincronizzati e diventa un'altra fonte di mal di testa
  • Agile dice che il codice di lavoro è più importante delle pile di documentazione, quindi possiamo tranquillamente ignorare i commenti scritti

Per me questo è solo un dogma. Ancora una volta, la mia osservazione personale è stata che il software scritto da team di sviluppatori intelligenti ed esperti alla fine finisce con una quantità considerevole di codice che non è auto-esplicativo.

Ancora una volta, l'API Java, l'API Cocoa, l'API Android, ecc. mostrano che se si desidera scrivere e conservare documentazione di qualità, è possibile.

Detto questo, le conversazioni su pro e contro della documentazione e commenti sul codice sorgente basati su convinzioni personali di solito non finiscono bene e non portano a conclusioni soddisfacenti.

In quanto tale, sto cercando documenti accademici e studi empirici sugli effetti della documentazione del software, in particolare sulla creazione di commenti sul codice sorgente, sulla sua qualità e manutenibilità e sui suoi effetti sulla produttività del team.

Sei incappato in questi articoli e quale è stato il loro esito, se ce ne sono stati?

    
posta Behrang 20.02.2013 - 15:00
fonte

1 risposta

9

In "Effetto della modularizzazione e commenti sulla comprensione del programma" (1981), Woodfield, Dunsmore e Shen ha scoperto che "i soggetti i cui programmi contenevano commenti erano in grado di rispondere a più domande rispetto a quelli senza commenti."

Tuttavia, in "Apprendimento di una metrica per la leggibilità del codice" (2010), Raymond PL Buse e Westley Weimer hanno riscontrato che i commenti hanno solo un effetto limitato sulla leggibilità e sulla qualità:

Dall'astratto:

We construct an automated readability measure and... show that this metric correlates strongly with three measures of software quality: code changes, automated defect reports, and defect log messages... Our data suggests that comments, in of themselves, are less important than simple blank lines to local judgments of readability.

Da pagina 12:

We found that comments were are only moderately well-correlated with our annotators’ notion of readability (33% relative power). One conclusion may be that while comments can enhance readability, they are typically used in code segments that started out less readable: the comment and the unreadable code effectively balance out. The net effect would appear to be that comments are not always, in and of themselves, indicative of high or low readability.

Ricorda che i fautori della "coding senza commenti" non stanno dicendo che il codice senza commenti è migliore del codice con i commenti. Stanno sostenendo che uno particolare stile di codice senza commenti - uno che estrae il codice in metodi con nomi auto-descrittivi, uno che introduce spiegazioni sulle variabili , uno con una buona suite di test - è meglio di codice che non fa quelle cose ma ha dei commenti. Questo potrebbe complicare l'applicabilità di qualsiasi studio che sia stato fatto.

    
risposta data 20.02.2013 - 16:16
fonte