Sono uno studente delle scuole superiori che lavora a un progetto C # con un mio amico con lo stesso livello di abilità di me. Finora, abbiamo scritto circa 3.000 righe di codice e 250 righe di codice di test in un intervallo di 100 commit. A causa della scuola, ho interrotto il progetto per alcuni mesi e recentemente sono riuscito a riprenderlo.
Quando l'ho riavviato, ho capito che il codice che avevo scritto era mal progettato, come l'inclusione di thread eccessivi nel renderer, scarsa prevenzione delle condizioni di gara nell'interazione tra CPU emulata, GPU, e cartuccia di gioco, oltre al codice che è semplicemente ridondante e confuso.
Il problema è che non ho ancora finito la funzionalità principale del mio programma, quindi non posso veramente fare il refactoring, e mi sento scoraggiato per andare perfettamente consapevole del fatto che il design del mio codice è difettoso. Allo stesso tempo, non voglio abbandonare il progetto; sono stati compiuti notevoli progressi e il lavoro non deve andare sprecato.
Mi sento come se avessi un paio di scelte: terminare semplicemente la funzionalità lavorando attorno al design scadente e poi refactoring una volta che tutto funziona, fermando tutto e lavorando per districare tutto prima che il resto della funzionalità possa essere completato, avviare il progetto dappertutto in modo che sia di nuovo fresco nella mia mente, o addirittura abbandonare il progetto a causa delle sue dimensioni eccessive (in sostanza "torna al tavolo da disegno").
Basandomi sull'esperienza degli altri in questi progetti, qual è il ricorso per rimettermi sulla strada giusta? Dalle risposte su questo sito, il consenso generale è che riscrittura non è generalmente necessario ma un'opzione disponibile se il codice non può essere mantenuto senza costi eccessivi. Desidero sinceramente perseguire questo progetto, ma così com'è, il mio codice non è progettato abbastanza bene per continuare, e un senso di sconforto mi impedisce di continuare.