所以我们的项目中有这个巨大的(11000 行大吗?)mainmodule.cpp 源文件,每次我必须触摸它时,我都会畏缩。
由于这个文件如此中心和大,它不断积累越来越多的代码,我想不出一个好的方法让它真正开始缩小。
该文件在我们产品的多个 (> 10) 维护版本中使用并积极更改,因此很难重构它。如果我要“简单地”将其拆分为 3 个文件,那么从维护版本合并回更改将成为一场噩梦。此外,如果您拆分具有如此悠久和丰富历史的文件,跟踪和检查 SCC
中的旧更改历史突然变得更加艰难。
该文件基本上包含了我们程序的“主类”(主要的内部工作调度和协调),所以每次添加一个特性,它也会影响这个文件,每次增长。 :-(
在这种情况下你会怎么做?关于如何将新功能移动到单独的源文件而不弄乱 SCC
的任何想法工作流程?
(关于工具的注意事项:我们使用 C++ 和 Visual Studio
;我们使用 AccuRev
作为 SCC
但我认为 SCC
的类型在这里并不重要;我们使用 Araxis Merge
来做实际的比较和合并文件)
最佳答案
合并不会像将来获得 30000 LOC 文件那样成为一场噩梦。所以:
- 停止向该文件添加更多代码。
- 拆分它。
如果您不能在重构过程中停止编码,您可以将这个大文件 按原样 保留一段时间,至少不向其中添加更多代码:因为它包含一个“主类”您可以从它继承,并将具有重载函数的继承类保存在几个新的小而设计良好的文件中。
关于c++ - 如何处理 11000 行 C++ 源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3615789/