Ottima domanda.
La risposta potrebbe essere "dipende".
Se riesci a scomporre una parte non chiara in un metodo o una sua funzione, fallo e altri che devono mantenere il tuo codice sorgeranno e ti chiameranno benedetto. Utilizzare i commenti Javadoc per rendere meno chiari i dettagli. Questo potrebbe essere il punto principale del tuo amico.
Ecco una citazione da un testo di musica comp che non riesco a ricordare (e scuse all'autore):
i++; // increment the counter
Il punto dell'autore nell'esempio è che il commento è superfluo. Se hai preso la programmazione 101, non hai bisogno del commento.
Se stai facendo qualcosa di non palesemente ovvio agli altri (o forse a te stesso da sei settimane a partire da ora), allora commenta con ogni mezzo il non così incredibilmente ovvio.
Ad esempio, comprendi immediatamente
assertFalse("valid status differs", file1.isValid() ^ file2.isValid);
o potresti essere aiutato da questi commenti
// Java XOR operator a^b returns true iff a and b differ.
// If file1 and file2 are both isValid, return false.
// The assertion is that the two versions of isValid should be the same.
Anche se sei superbo con gli operatori booleani e usi XOR regolarmente, i commenti dovrebbero aiutare e velocizzare la tua comprensione.
Oppure considera questo frammento per convertire una stringa in un int, utilizzando un numero n, senza commenti:
...
} else {
Double d = (Double) n;
Long l = d.longValue(n);
int ans = n.intValue();
if (l.equals ((long) ans)) return ans;
throw new ParseException("Field too big to be stored as int");
}
Confronta con codice commentato:
...
} else {
// n must be a double
Double d = (Double) n;
Long l = d.longValue(n); // l contains the sInt as a long
int ans = n.intValue(); // was it truncated?
if (l.equals ((long) ans)) return ans; // not truncated -- they were equal as longs
throw new ParseException("Field too big to be stored as int");
}
Ammetto prontamente che questo ultimo frammento è "pesantemente commentato". Penso che i buoni programmatori codificheranno per aiutare a comunicare e chiarire. Err dalla parte dei commenti liberali. Puoi sempre rimuoverli in seguito.