Soy un estudiante de secundaria que estoy trabajando en un proyecto de C # con un amigo mío con el mismo nivel de habilidad que yo. Hasta el momento, hemos escrito aproximadamente 3,000 líneas de código y 250 líneas de código de prueba en un lapso de 100 confirmaciones. Debido a la escuela, pospuse el proyecto por unos meses y recientemente pude reanudarlo nuevamente.
Cuando lo había recuperado, comprendí que el código que había escrito estaba mal diseñado, como la inclusión de subprocesos excesivos en el renderizador, poca prevención de las condiciones de carrera en la interacción entre la CPU emulada, GPU, y cartucho de juego, así como código que es simplemente redundante y confuso.
El problema es que no he terminado ni siquiera la funcionalidad principal de mi programa, por lo que no puedo realmente refactorizarlo, y me siento desanimado a seguir perfectamente consciente de que el diseño de mi código es defectuoso. Al mismo tiempo, no quiero abandonar el proyecto; se ha hecho un progreso sustancial y el trabajo no debe desperdiciarse.
Me siento como si tuviera un par de opciones: simplemente terminar la funcionalidad trabajando en torno al diseño deficiente y luego refactorizar una vez que todo esté funcionando, deteniendo todo y trabajando para desenredar todo antes de que pueda terminarse el resto de la funcionalidad, comenzar el proyecto de nuevo para que esté fresco en mi mente nuevamente, o abandonar el proyecto por completo debido a su tamaño excesivo (esencialmente "de vuelta al tablero de dibujo").
Basado en la experiencia de otros en tales proyectos, ¿cuál es el recurso para volver al camino correcto? De las respuestas en este sitio, el consenso general es que la reescritura es generalmente innecesaria pero una opción disponible si el código no se puede mantener sin un costo excesivo. Realmente me gustaría continuar con este proyecto, pero tal como está, mi código no está lo suficientemente diseñado para que pueda continuar, y un sentimiento de desaliento me impide continuar.