Якщо ви не робили цю роботу багато разів раніше, ви завжди будете мати код спагетті. Насправді, ви вже тільки почали: у вас є чорновий проект попередньої специфікації. Ознайомтеся з деякими іншими порадами тут і зробіть серйозні переписування. А потім ще кілька переписувань, а потім .... Особисто я ніколи не впевнений, чи зможу я отримати свій код у дійсно чудовій формі або просто нудьгую від його переписування, але я, мабуть, все зрозумію.
Вирішіть проблему з двох кінців. Спробуйте домогтися загального дизайну, щоб мати сенс і вибирайте невеликі деталі, які справляються з простими справами та роблять їх правильними. Потім спробуйте пропрацювати свій шлях з обох кінців до середини. А потім працюйте з середньої спини до обох кінців. Потім зверху вниз, потім знизу вгору. Потім повторіть весь процес.
По суті, у вас є колекція занять. Розглянемо клас А. Якщо клас A побудований добре, його класи, які використовують його, автоматично працюватимуть краще, якими б хорошими чи поганими вони не були. Якщо види використання класу А класи добре, ті які використовуються класи будуть робити більше, однак , добре чи погано вони є. Тож організуйте свої заняття якнайкраще, тоді переконайтесь, що кожен є найкращим класом, який він може бути.
Важливо, щоб це було максимально правильно. Поганий код буде переслідувати вас до дня, коли ви його викинете. За допомогою програмного забезпечення трохи додаткового полірування завжди окупається. (Якщо ніхто не закінчує використання коду ....)
Підводячи підсумок: перегляньте фактичну пораду, надану в інших відповідях, а потім перепишіть свій код, поки не отримаєте щось, що вам подобається.