Таким чином, у нас є цей величезний (на 11000 рядків величезний?) Mainmodule.cpp вихідний файл у нашому проекті, і кожного разу, коли мені доводиться його торкатися, я стискаюся.
Оскільки цей файл настільки центральний і великий, він продовжує накопичувати все більше і більше коду, і я не можу придумати хорошого способу змусити його фактично почати скорочуватися.
Файл використовується і активно змінюється в декількох (> 10) версіях технічного обслуговування нашого продукту, тому його дуже важко переробити. Якщо я повинен був "просто" розділити його, скажімо для початку, на 3 файли, то об'єднання змін назад з технічними версіями стане кошмаром. А також, якщо ви розділите файл із такою довгою та багатою історією, відстежувати та перевіряти старі зміни в SCCісторії раптом стає набагато важче.
Файл, в основному, містить "основний клас" (основна внутрішня робота диспетчеризації та координації) нашої програми, тому кожен раз, коли додається функція, вона також впливає на цей файл і кожного разу, коли він росте. :-(
Що б ви зробили в цій ситуації? Будь-які ідеї, як перемістити нові функції в окремий вихідний файл, не псуючи SCCробочий процес?
(Примітка до інструментів: ми використовуємо C ++ з Visual Studio; ми використовуємо AccuRevяк, SCCале я думаю, що тип SCCнасправді тут не має значення; ми використовуємо Araxis Mergeдля фактичного порівняння та об’єднання файлів)