Entonces tenemos este enorme archivo fuente mainmodule.cpp (¿11000 líneas es enorme?) En nuestro proyecto y cada vez que tengo que tocarlo me da escalofríos.
Como este archivo es tan central y grande, sigue acumulando más y más código y no puedo pensar en una buena manera de hacer que realmente empiece a reducirse.
El archivo se usa y cambia activamente en varias (> 10) versiones de mantenimiento de nuestro producto, por lo que es realmente difícil refactorizarlo. Si tuviera que "simplemente" dividirlo, digamos para empezar, en 3 archivos, fusionar los cambios de las versiones de mantenimiento se convertirá en una pesadilla. Y también si divide un archivo con un historial tan largo y rico, el seguimiento y la verificación de los cambios antiguos en el SCChistorial de repente se vuelven mucho más difíciles.
Básicamente, el archivo contiene la "clase principal" (distribución y coordinación del trabajo interno principal) de nuestro programa, por lo que cada vez que se agrega una característica, también afecta a este archivo y cada vez que crece. :-(
¿Qué haría usted en esta situación? ¿Alguna idea sobre cómo mover nuevas funciones a un archivo fuente separado sin desordenar el SCCflujo de trabajo?
(Nota sobre las herramientas: Usamos C ++ con Visual Studio; Usamos AccuRevcomo SCCpero creo que el tipo de SCCrealmente no importa aquí; Usamos Araxis Mergepara hacer una comparación y fusión real de archivos)