La risposta breve, migliore e corretta
L'idea che tutto ciò di cui hai bisogno sia un "codice auto-documentato" ben scritto è un anti-schema e dovrebbe morire, anche quando fa eccezioni per i commenti che spiegano "perché". È un mito che puoi sempre scrivere tutto il codice per qualsiasi algoritmo abbastanza chiaro da consentire a qualsiasi programmatore di guardarlo e ottenerlo (o che non richiederà refactoring o tempo organizzativo che non hai). Ancora più importante, il più delle volte, i programmatori che pensano di scrivere codice chiaro non lo fanno.
Una risposta molto migliore dei commenti dovrebbe essere usata solo per spiegare "perché" è che i commenti dovrebbero:
- spiegare "why" (ovviamente)
- spiegare "cosa" su singole righe solo quando il codice è complesso o lo scopo non è chiaro e non può essere o non vale la pena semplificare ulteriormente
- spiega "cosa" per i blocchi di codice per accelerare la comprensione e individuare ciò di cui hai bisogno
La spiegazione per il backup
Le persone pensano erroneamente che l'unica ragione per cui le persone usano i commenti è spiegare cosa significa una riga di codice. La verità è un grande scopo di commentare il codice è quello di renderlo più veloceper dare un'occhiata al tuo codice e trovare quello che stai cercando. Quando torno più tardi al codice o leggo il codice di qualcun altro, certo, posso leggere e comprendere una sezione di codice ben scritto, ma non è più veloce e più facile leggere il commento in alto dicendo cosa fa quella sezione di codice e saltarlo del tutto se non è quello che sto cercando? Perché sedersi lì e capire del codice, anche se è ben scritto, se puoi dare un'occhiata a un paio di commenti e capire un'intera funzione? Ecco perché usiamo nomi descrittivi per le funzioni - nessuno dice che non ho bisogno di usare un nome descrittivo per la mia funzione perché qualcuno può semplicemente guardare attraverso il mio codice scritto in modo pulito per vedere cosa fa.
Ad esempio, se sto guardando attraverso la funzione di qualcun altro, è più facile andare riga per riga attraverso il codice per vedere cosa sta facendo o dare un'occhiata a tre commenti ben scritti in tutta la funzione per vedere esattamente cosa sta facendo la funzione e dove lo sta facendo?
Un altro anti-pattern è l'uso eccessivo di funzioni per commentare il tuo codice. Le funzioni ben nominate sono una parte importante della documentazione del codice, ma a volte i programmatori separano 2-3 righe di codice che non verranno mai utilizzate da nessun'altra parte in una funzione a scopo di documentazione. Perché l'uso eccessivo delle funzioni è meglio di un uso eccessivo dei commenti? Usare funzioni come questa è come abbracciare le istruzioni GOTO: crea un codice spaghetti che può essere una seccatura da seguire.
In sostanza, quando lavori in un ambiente aziendale, in cui le persone condividono costantemente il codice e le persone non hanno sempre il tempo di rendere perfetto il loro codice, alcuni buoni commenti possono farti risparmiare un sacco di tempo e frustrazione. E ricorda, mentre potresti essere un guru in grado di leggere il codice alla velocità della luce, probabilmente non tutti nel tuo ufficio lo sono.