Refactoring: Commenti

Mi è capitato spesso di legger commenti del tutto inutili al codice:

// Calcola il valore inserito per due
int res = CalcolaIlValoreInseritoPerDue(valoreDaCalcolare);

Inseriti perchè un PM troppo invasivo o una mente troppo contorta, hanno obbligato lo sviluppatore a scrivere.

Una delle regole del Refactoring consiste nello scrivere codice autoesplicativo; così facendo inserire dei commenti nel codice
diventa ridondante e inutile.

Rimane però un caso nel quale scrivere un commento può tornare utile, secondo me.

Capita che sul finire di un progetto, non siamo stati abbastanza lungimiranti da scrivere una procedura in maniera abbastanza generica
da poter applicare in più casi; così, con la morte nel cuore, bisogna scegliere se:

  • Implementare un buon Abstract Factory
  • Andare avanti perchè il tempo non basta

Fermo restando che non dovrebbe mai capitare, vi trovate in questo bivio.
A questo punto vi troverete a dover duplicare il codice appena scritto perchè poco generico, trovandovi così in situazioni del tipo:

bool fb = DisegnaLaTabellaCon3x3(dati);
bool fb = DisegnaLaTabellaCon3x4(dati);

O, ancor peggio, dove i nomi dei metodi inseriti sono non autoesplicativi.

I commenti dovrebbero esser inseriti solamente quando non siamo in grado di far refactoring sul codice scritto o per spiegare
perchè è stata applicata una sequenza non logica, in modo tale che in futuro potremmo ricordare perchè quel codice sta lì.

Comunque un codice ben strutturato non ha bisogno di commenti.
Prima di scrivere un commento è utile provare a far refactoring sul codice.