"Può essere usato come riferimento" Non vorrei essere d'accordo con l'essere un buon motivo per lasciare in codice inutilizzato. Spesso, solo una piccola porzione del codice inutilizzato sta effettivamente dimostrando qualcosa di interessante. Esistono diversi modi per documentare e memorizzare codice utile ma non utilizzato.
Sebbene il controllo della versione conterrà una cronologia che ti permetterà facilmente di ripristinare particolari funzionalità se in seguito deciderà che il codice è necessario, sapendo che devi andare a cercare nella cronologia del controllo della versione per trovare xy o z da chissà cosa precedente la revisione può essere un po 'noiosa e spesso viene trascurata a meno che non si abbia un'idea abbastanza specifica di ciò che si sta cercando.
Il codice potrebbe essere commentato con una nota su quando è stato rimosso e perché non è stato semplicemente eliminato dal codice. Tuttavia, questo è generalmente considerato di cattivo stile, e il codice che non viene usato e non mantenuto correttamente può introdurre tutti i tipi di bug se non viene commentato in seguito, quindi questo è generalmente meglio come una fase di debug / testing temporaneo durante il refactoring medio di un modo per lasciare il codice di produzione.
Il mio modo preferito di memorizzare il codice cancellato, se sembra essere utile in futuro, è di creare un documento di riferimento secondario contenente tutti i vari blocchi di codice cancellato. Ogni blocco di codice è etichettato con una breve menzione di dove proviene o qualcos'altro pertinente da ricordare, ad esempio quando è stato rimosso o il numero di revisione che era l'ultimo nel codice in. Tutto rimosso ma "potenzialmente utile" è in un posto, facilmente ricercabile, ma non richiede uno sforzo costante per mantenere e testare su base continuativa (che il test venga posticipato a qualunque punto venga reintrodotto).