Я учусь в старшей школе и работаю над проектом на C # с моим другом примерно такого же уровня квалификации, как и я. Пока что мы написали примерно 3000 строк кода и 250 строк тестового кода за промежуток в 100 коммитов. Из-за школы я отложил проект на несколько месяцев, и недавно мне удалось снова его возобновить.
К тому времени, когда я собрал его, я понял, что написанный мной код был плохо спроектирован, например, включение избыточных потоков в рендере, плохая защита от гонок во взаимодействии между эмулируемым процессором, графическим процессором и игровым картриджем. , а также код, который просто избыточен и сбивает с толку.
Проблема в том, что я не закончил даже основную функциональность моей программы, поэтому я не могу по-настоящему реорганизовать ее, и я чувствую себя обескураженным, чтобы продолжать прекрасно осознавать, что дизайн моего кода имеет недостатки. В то же время я не хочу отказываться от проекта; достигнут значительный прогресс, и работа не должна пропадать даром.
Мне кажется, что у меня есть пара вариантов: просто завершить функционал, обойдя плохой дизайн, а затем рефакторинг, как только все заработает, остановить все и работать, чтобы распутать все до того, как остальная функциональность может быть завершена, начиная проект все так, чтобы он снова был свежим в моей памяти, или просто отказался от проекта из-за его чрезмерного размера (по сути, «назад к чертежной доске»).
Основываясь на опыте других в таких проектах, каковы пути возвращения себя на правильный путь? Исходя из ответов на этом сайте, общее согласие заключается в том, что переписывание, как правило, не нужно, но доступно, если код не может быть поддержан без чрезмерных затрат. Я искренне хотел бы продолжить этот проект, но в его нынешнем виде мой код разработан недостаточно хорошо, чтобы я мог продолжать его, и чувство уныния отвлекает меня от продолжения.