Ogni volta che scopro che una grande parte del mio codice deve essere cambiata, o perché non è corretta o perché deve essere adattata alle principali modifiche architettoniche necessarie per altri motivi, questo è ciò che faccio tipicamente:
- Esprimo il mio commento su tutto il codice che sospetto possa essere necessario modificare. Tratto il codice commentato come una sorta della mia lista TODO.
- Riesco a riesaminare gradualmente il codice commentato e le parti non note di questo codice, oppure copiarlo e incollarlo altrove, quindi modificarlo se necessario, o riscrivere parti di questo codice da zero, osservando il codice commentato come riferimento. Ogni volta che penso di aver finito con una parte del codice commentato, lo rimuovo.
- Continuo fino a quando non vedo più codice commentato.
Devo notare che in gran parte sto facendo questo sul progetto personale che sto sviluppando da solo.
Tuttavia, mi è stato detto, che dovrei smettere di farlo. Mi è stato detto che invece, dovrei iniziare a usare git, riferendosi ai vecchi commit per vedere il vecchio codice, invece di lasciare un codice commentato. Mi è stato detto:
Commenting out code is a bad habit that should be wiped out. You lack experience so you fail to understand that. If, in a few years, you see code of another person who likes commenting out code, you will yourself start swearing at this person. Whenever I see commented out code, I remove it in its entirety, without even looking at it, because usually such code is completely worthless. You will certainly fail to see the downsides of commenting out code in small, one-person projects; but if you find a job and keep this habit there it will be a shame.
Posso chiederti quali sono questi aspetti negativi di quello che sto facendo che non riesco a vedere ora?
Devo dire che non mi piace molto usare solo git per vedere il codice passato. Come ho detto, tratto commento commentando il codice come una sorta di elenco delle cose da fare; mentre git mi mostrerà come il codice è stato utilizzato, non riuscirà a mostrarmi chiaramente quali parti di codice sono ancora necessarie per essere riviste e quali sono già state fatte. Temo di perdere parte del codice e introdurre bug.
Per completezza, sento che dovrei aggiungere che la persona che sto citando è uno sviluppatore esperto e un fan del "Codice pulito" dello zio Bob - e lo zio Bob ha criticato il commento di codice in modo aspro nel suo libro.