Я нашел это предложение самой интересной частью вашего сообщения:
> Файл используется и активно изменяется в нескольких (> 10) версиях нашего продукта для обслуживания, поэтому его очень трудно реорганизовать
Во-первых, я бы порекомендовал вам использовать систему контроля версий для разработки этих 10+ версий обслуживания, поддерживающих ветвление.
Во-вторых, я бы создал десять веток (по одной для каждой вашей версии обслуживания).
Я чувствую, что ты уже съеживаешься! Но либо ваш источник управления не работает для вашей ситуации из-за отсутствия функций, либо он используется неправильно.
Теперь перейдите в ту ветвь, над которой вы работаете, - проведите рефакторинг по своему усмотрению, уверенный в том, что вы не расстроите остальные девять веток вашего продукта.
Я был бы немного обеспокоен тем, что у вас так много в вашей функции main ().
В любых проектах, которые я пишу, я бы использовал main () только для инициализации основных объектов - таких как объект моделирования или приложения - эти классы - то, где должна продолжаться настоящая работа.
Я бы также инициализировал объект регистрации приложения в main для глобального использования в программе.
Наконец, в основной я также добавляю код обнаружения утечки в блоки препроцессора, который гарантирует, что он включен только в сборках DEBUG. Это все, что я хотел бы добавить к main (). Main () должен быть коротким!
Вы говорите, что
> Файл в основном содержит "основной класс" (диспетчеризация и координация основной внутренней работы) нашей программы
Похоже, эти две задачи можно разделить на два отдельных объекта - координатор и диспетчер работ.
Когда вы их разделяете, вы можете испортить свой «рабочий процесс SCC», но похоже, что строгое соблюдение вашего рабочего процесса SCC вызывает проблемы с обслуживанием программного обеспечения. Откажитесь от этого сейчас и не оглядывайтесь назад, потому что, как только вы исправите это, вы начнете спать спокойно.
Если вы не можете принять решение, сражайтесь изо всех сил с вашим менеджером за это - ваше приложение должно быть подвергнуто рефакторингу - и очень плохо от его звуков! Не принимай нет за ответ!