Ho appena completato un pezzo di codice complesso. Funziona su specifiche, soddisfa i requisiti di prestazione ecc. Ecc., Ma mi sento un po 'ansioso e sto prendendo in considerazione la possibilità di riscriverlo e/o refactarlo. Dovrei farlo (passare del tempo che altrimenti potrebbe essere speso per funzionalità che gli utenti effettivamente noteranno)?Rif. Codice/riscrittura o continua?
Le ragioni mi sento in ansia per il codice sono:
- La gerarchia delle classi è complessa e non ovvio
- Alcune classi non hanno uno scopo ben definito (che fanno un certo numero di cose non correlate)
- Alcune classi utilizzano altri interni (sono dichiarate come classi amico) per ignorare gli strati di astrazione per le prestazioni, ma ritengo che interrompano l'incapsulamento facendo questo
- Alcune classi perdono dettagli di implementazione (ad esempio, ho cambiato una mappa in una mappa hash precedente e sono ritrovato a dover modificare il codice in altre sorgenti per far funzionare il cambiamento)
- mia gestione della memoria/sistema di pooling è un pò goffo e meno-che trasparente
Sembrano ottime ragioni di refactoring e codice pulito, aiutando la manutenzione e l'estensione future, ma potrebbe richiedere molto tempo. Inoltre, non sarò mai perfettamente soddisfatto di qualsiasi codice che scrivo comunque ...
Quindi, cosa pensa StackOverflow? Pulisci codice o lavora sulle funzionalità?
Grazie a tutti per il consiglio. È molto apprezzato Penso che rifatterò mentre è fresco nella mia mente e mentre posso dedicargli del tempo. Potrei non avere la possibilità di farlo in seguito e il codice è piuttosto difficile da refactoring incrementale così com'è, che non è sicuramente buono. Grazie ancora! – Dan
Un articolo possibilmente rilevante: http://www.joelonsoftware.com/articles/fog0000000069.html –
Grazie per quello. Fortunatamente ci sono ampie sezioni di codice che sono felice e sono in grado di riutilizzare così com'è, quindi non è assolutamente una riscrittura completa. Se fosse "completa riscrittura vs continua", non avrei fatto la domanda e semplicemente continuato. – Dan