Quote:
Originariamente inviato da marco.r
Non sarei cosi' categorico. Non sempre e' possibile scrivere codice completamente autoesplicativo, a meno di cambiare radicalmente il codice anche in altre parti, e magari non e' economicamente sostenibile.
Direi che dipende molto dal tipo di programma che si deve scrivere.
|
Ma infatti, mi sembra che questo intervento sia molto meno intelligente della media di gugoXX, onestamente.
Intanto definire "codice autoesplicativo" e indicare se esiste;
personalmente ci metto 1-2 minuti a ricordare il funzionamento di una MIA classe non commentata quando ci rimetto mano dopo molto tempo...
minuti nei quali rischio di fare cagate o rovinare il design della classe modificandola male.
Una sola linea di commento che indichi lo scopo a parole e i warning, permette di sorvolare completamente la lettura del codice.
Ovviamente la cosa è ancora più vantaggiosa nel caso di un altro tizio del team, che il tuo codice lo deve proprio capire daccapo per usarlo, anche se supponiamo che le funzioni siano chiarissime, one-liner e tutto il resto.
Ecco, il mio punto di vista è "il codice DEVE essere chiaro e autoesplicativo, ma deve avere ANCHE i commenti"
Poi ci sono tante cose che non emergono dal codice, tipo l'architettura di massima del sistema, il suo modo d'uso, use case specifici, tutte cose che sono particolarmente utili per indirizzare l'utente verso il "modo unico" di fare le cose che avevi pensato, in modo da distoglierlo da hacks assortiti o soluzioni possibili ma inefficienti o ineleganti, o semplicemente indirizzarlo verso la giusta classe e la relativa documentazione.
Questo lo so perchè lavorando con un progetto enorme tipo Ogre, spesso è difficile anche solo capire, dato un obiettivo che hai, quale sarebbe la classe che lo realizza. Spesso ci sono 2 o 3 modi.
Poi il nostro "pro programmer" senza documentazione nè descrizioni di massima che fa, si legge tutto il codice di tutte le classi che a occhio hanno una vaga assonanza con quello che pensa?
Direi che non ha molto senso, e lo so perchè con Ogre mi è toccato farlo qualche volta, perdendoci le ore
Per cui la documentazione serve eccome, io tra assert, tests, disegnini e commenti ne produco parecchia anche per progetti dove lavoro solo io.