План рефакторинга 17+ лет нетестируемого кода Delphi

Вы все слышали это раньше, классическое приложение Delphi.

С библиотеками сторонних разработчиков мы имеем 1.5 миллиона строк кода, возможно 200,000 собственного (Dev Express, NexusDB, и т.д. и т.п.)

Один огромный Datamodule, который я медленно разделяю на 5 (и, вероятно, потребуется больше). Медленно, но верно перемещаю часть бизнес-логики в эти датамодули в виде методов модуля.

Все кодируется "под кнопку", никаких собственных классов. Несколько форм имеют 20к строк кода.

Мне нужен разумный план, чтобы привести это в порядок. Сейчас вы не можете протестировать НИЧЕГО из этого, незначительные изменения могут принести целую армию ошибок, и т.д.

Я думал, для начала, создать единицу для каждой основной формы и извлечь бизнес-логику формы в этот класс/единицу. Что-то вроде TMyForm имеет TMyFormClass.pas, так что TmyForm в конечном итоге не имеет ничего, кроме UI. Продолжайте модулировать модули данных, как можно скорее пишите тесты. Рефакторить только то, над чем мы работаем.

Звучит здраво, предложения по дополнению, кто-нибудь, пожалуйста, пришлите мне liqour....

7
задан Richard Holland 19 December 2011 в 17:02
поделиться