I commenti non dovrebbero spiegare come funziona il codice. Il codice è lì per spiegare come funziona. Se l'implementazione viene modificata, il commento diventa errato.
Per lo più i commenti dovrebbero spiegare qual è lo scopo del codice. Ciò consente di modificare l'implementazione nel tempo senza invalidare il commento. Cambiare lo scopo del codice è raramente una buona idea.
Per le interfacce pubbliche potresti voler fornire una documentazione estraibile per la macchina che spieghi:
- Qual è il suo scopo e cosa viene restituito.
- Descrivi lo scopo e i valori validi sono per ciascun parametro.
- Probabilmente spiega come si prevede che la funzionalità possa / potrebbe essere utilizzata.
Esistono vari strumenti che estraggono la documentazione dai contenuti. Java ha javadoc, che estrae alcuni commenti e crea un albero di documentazione per un pacchetto di classi.
I buoni nomi possono essere una documentazione sufficiente. Evita i nomi che spiegano come viene implementata la funzionalità.
Se il codice è stato ottimizzato, potrebbe essere opportuno includere un commento che spieghi perché il codice è stato modificato e quali sono i risultati. Ciò dovrebbe ridurre la possibilità che il codice venga refactored per rimuovere l'ottimizzazione. Allo stesso modo, se è richiesto un particolare algoritmo, sarebbe opportuno un commento che spieghi il requisito. Questi due commenti potrebbero essere in disaccordo poiché un algoritmo più accurato potrebbe essere un algoritmo più lento.
I commenti sulle correzioni dei bug dovrebbero essere nel controllo della versione. Questi dovrebbero spiegare perché il cambiamento è stato richiesto / fatto piuttosto che come è stato implementato.