Ogni volta che scopro che una grande parte del mio codice deve essere modificata, sia perché non è corretta o perché deve essere adattata alle principali modifiche architettoniche richieste da altri motivi, questo è ciò che faccio in genere:
- Commento tutto il codice che sospetto possa essere necessario modificare. Considero il codice commentato come una specie del mio elenco TODO.
- Riesco a rivedere gradualmente il codice commentato e le parti di decommenting di questo codice, o copiarlo e incollarlo altrove, quindi modificarlo come necessario, o riscrivere parti di questo codice da zero, guardando il codice commentato per riferimento. Ogni volta che penso di aver finito con una parte del codice commentato, lo rimuovo.
- Continuo fino a quando non vedo più il codice commentato.
Dovrei notare che lo sto facendo in gran parte sul progetto personale che sto sviluppando da solo.
Tuttavia, mi è stato detto che avrei dovuto smettere di farlo. Mi è stato detto che invece, dovrei iniziare a usare git, facendo riferimento ai vecchi commit per vedere il vecchio codice, invece di lasciare il codice commentato. Mi fu detto:
Commentare il codice è una cattiva abitudine che dovrebbe essere spazzata via. Ti manca l'esperienza, quindi non riesci a capirlo. Se, tra qualche anno, vedi il codice di un'altra persona a cui piace commentare il codice, inizierai a imprecare contro questa persona. Ogni volta che vedo codice commentato, lo rimuovo nella sua interezza, senza nemmeno guardarlo, perché di solito tale codice è completamente senza valore. Certamente non vedrai gli svantaggi del commentare il codice in piccoli progetti individuali; ma se trovi un lavoro e tieni questa abitudine, sarà un peccato.
Posso chiedere quali sono questi aspetti negativi di quello che sto facendo che non riesco a vedere ora?
Devo dire che non mi interessa davvero usare solo git per vedere il codice passato. Come ho detto, considero commentare il codice come una sorta di todo-list; mentre git mi mostrerà come appariva il codice, non mi mostrerà chiaramente quali parti del codice sono ancora necessarie per essere riviste e quali sono già state fatte. Temo che potrei perdere qualche 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 "Clean Code" di zio Bob - e lo zio Bob ha criticato duramente il suo codice nel commentare il suo libro.