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 SCC
historial 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 SCC
flujo de trabajo?
(Nota sobre las herramientas: Usamos C ++ con Visual Studio
; Usamos AccuRev
como SCC
pero creo que el tipo de SCC
realmente no importa aquí; Usamos Araxis Merge
para hacer una comparación y fusión real de archivos)