Sono uno studente del liceo 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 arco di 100 commit. A causa della scuola, ho rimandato il progetto per alcuni mesi e recentemente sono stato in grado di riprenderlo.
Quando l'ho ripreso, ho capito che il codice che avevo scritto era mal progettato, come l'inclusione di thread eccessivi nel renderer, la scarsa prevenzione delle condizioni di gara nell'interazione tra CPU emulata, GPU e cartuccia di gioco , nonché codice semplicemente ridondante e confuso.
Il problema è che non ho ancora finito le funzionalità principali del mio programma, quindi non posso veramente rifattorizzare, e mi sento scoraggiato a continuare perfettamente consapevole 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à aggirando il design scadente e quindi refactoring una volta che tutto funziona, arrestando tutto e lavorando per districare tutto prima che il resto della funzionalità possa essere completato, iniziando il progetto dappertutto in modo che sia di nuovo fresco nella mia mente, o addirittura abbandonando il progetto a causa delle sue dimensioni eccessive (essenzialmente "torna al tavolo da disegno").
Sulla base dell'esperienza di altri in tali progetti, qual è il ricorso per tornare sulla strada giusta? Dalle risposte su questo sito, il consenso generale è che la riscrittura non è generalmente necessaria ma è un'opzione disponibile se il codice non può essere mantenuto senza costi eccessivi. Vorrei davvero perseguire questo progetto, ma così com'è, il mio codice non è progettato abbastanza bene per continuare e un sentimento di sconforto mi impedisce di continuare.