Вы все слышали это раньше, классическое приложение Delphi.
С библиотеками сторонних разработчиков мы имеем 1.5 миллиона строк кода, возможно 200,000 собственного (Dev Express, NexusDB, и т.д. и т.п.)
Один огромный Datamodule, который я медленно разделяю на 5 (и, вероятно, потребуется больше). Медленно, но верно перемещаю часть бизнес-логики в эти датамодули в виде методов модуля.
Все кодируется "под кнопку", никаких собственных классов. Несколько форм имеют 20к строк кода.
Мне нужен разумный план, чтобы привести это в порядок. Сейчас вы не можете протестировать НИЧЕГО из этого, незначительные изменения могут принести целую армию ошибок, и т.д.
Я думал, для начала, создать единицу для каждой основной формы и извлечь бизнес-логику формы в этот класс/единицу. Что-то вроде TMyForm имеет TMyFormClass.pas, так что TmyForm в конечном итоге не имеет ничего, кроме UI. Продолжайте модулировать модули данных, как можно скорее пишите тесты. Рефакторить только то, над чем мы работаем.
Звучит здраво, предложения по дополнению, кто-нибудь, пожалуйста, пришлите мне liqour....