Quanto è utile commentare il codice?

di Gianni Tomasicchio - 2 maggio 2009

Nei giorni scorsi si è accesa una piccola diatriba attraverso diversi blog (1, 2, 3) sull'utilità dei commenti all'interno del codice.

Da un lato ci sono coloro che sostengono l'utilità di commentare ogni singola riga di codice, in modo da semplificare le attività di manutenzione degli script. Dalla parte opposta ci sono invece coloro che ritengono che scrivendo codice di qualità, autoesplicativo, non sia necessario ricorrere ai commenti.

Voi da che parte state? Quanto tempo spendete nel commentare il vostro codice?

4 commenti

1 Guido guidoch lunedž 4 maggio 2009, ore 21:10
Ciao Gianni,

secondo me la verità sta nel mezzo, i commenti sono utili ma abusarne potrebbe essere controproducente, immaginiamo di commentare riga per riga un progetto di grandi dimensioni, ci vorrebbe più tempo che scrivere il codice php, figuriamoci poi quando si faranno delle modifiche, bisognerà modificare anche tutti i commenti interessati ma allo stesso tempo se non scriviamo alcun commento il nostro enorme progetto dopo qualche mese avrà delle parti difficili da comprendere anche da chi lo ha sviluppato.

Inoltre io ho avuto a che fare con chilometri di commenti totalmente incomprensibili e non aggiornati rispetto al codice php (vedi quello che dicevo sopra) e questo mi ha creato solo della gran confusione e perdite di tempo.

Personalmente uso il commento dove è indispensabile spiegando i punti salienti (classi e function) dell'applicazione scendendo nello specifico dove mi rendo conto che una piccola spiegazione non può fare altro che bene e comunque cerco fin dove possibile di non dilungarmi con i discorsi ma di essere pragmatico.

Ogni volta che si scrivono commenti, questo lo consiglio a tutti, bisogna pensare che chi verrà dopo di noi potrebbe avere un grado di preparazione più basso e sicuramente avrà un metodo di programmazione differente quindi bisognerà fornire il supporto più adeguato possibile.

Ciao e grazie per gli articoli interessantissimi!

Guido.
2 Valerio Valerio mercoledž 3 giugno 2009, ore 18:31
Ciao a tutti,
ho iniziato a lavorare per un portale molto vasto, con molte procedure differenti tra loro.
Tali procedure sono state realizzate da altri colleghi, che io non ho mai conosciuto, in quanto si sono trasferiti prima del mio arrivo.
Appena arrivato lì mi venivano dei mal di testa che nemmeno vi sto a raccontare....codice mischiato con altro codice(html, css, javascript ....) senza uno straccio di documentazione e commenti inesistenti!!!
In alcuni casi mi avrebbe fatto comodo avere dei commenti esplicativi, specialmente nei vari rami delle if con blocchi istruzioni molto corposi.
Per quanto riguarda la mia esperienza, i commenti sono uno strumento e come tale dipende dall'utilizzo che ne viene fatto.
Avere degli "appigli " fa comodo, ma commentare ogni riga è troppo!!!

Saluti
3 neryo neryo giovedž 24 settembre 2009, ore 12:09
Secondo me la cosa fondamentale è rendere semantico il codice che si scrive, ovvero dare nomi sensati alle variabili e alle classi/metodi e proprietà che si utilizzano. I commenti possono essere utili in procedure complesse, per dare maggiori dettagli su determinati blocchi di codice, ma se si abusa si hanno due svantaggi: 1) si perde tempo 2) non serve a niente. Inutile quindi fare commenti su parti di codice poco complessi che sono già autoesplicativi. Per quanto riguarda la strutturazione del codice è sempre bene avere una certa suddivizione architettura in stile MVC o lato web microsoft con il code behind.. con viste, logiche e Data access layer separati... si semplica notevolmente la stesura e la manutenzione e la comprensione del codice scritto. ciao neryo
4 MG MG venerdž 5 marzo 2010, ore 14:49
I commenti sono fondamentali, certo bisogna inserirli dove servono e nel modo giusto.
Commentare ogni riga è inutile probabilmente come commentare male.
Meglio seguire uno schema, magari usando uno stile del tipo DocBook in grado poi di gestire l'intera documentazione del progetto in automatico con un compilatore di documentazione.
Sto seguendo grossi progetti, se non capisco come deve poter funzionare una funzione p una classe, mi incaSSo come un programmatore incaSSato e sto lì a chiedere come funziona questo, come si implementa quello, alla fine si perde un casino di tempo, se documentavano era meglio.
Usare un sistema di nomi autoesplicativi va bene, ma non basta assolutamente, perché alle volte non capisci perché vengono usate certe variabili all'interno di certe classi che proprio non dovrebbero contenerle, per me documentare è fondamentale e non è una perdita di tempo, ma anzi un vantaggio.
Effettua l'accesso o registrati per inserire un commento