我们应用程序的源代码有数十万行、数千个文件,而且在某些地方非常老旧 - 应用程序最初是在1995或1996年编写的。过去几年中,我的团队大大提高了源代码的质量,但仍有一个特别让我烦恼的问题:很多类在其头文件中完全定义了许多方法。
对于某些情况下在头文件中声明内联方法,我没有任何问题 - 比如结构体的构造函数、一些简单的方法,在这种情况下内联可以明显加速(我们有一些像这样的数学函数),等等。但是在没有明显原因的情况下大量使用内联方法:
- 混乱
- 使查找方法的实现变得困难(尤其是在一棵类树中搜索虚函数,结果发现其中一个类在头文件中声明了其版本...)
- 可能会增加编译后的代码大小
- 可能会导致链接器出现问题,我们的链接器对于大型代码库来说是臭名昭著的(尽管近年来已经好了很多,但仍不完美)。
最后一个原因可能现在正在给我们带来问题,这是一个好的理由去检查代码库并将大多数定义移到源文件中。
我们的代码库非常巨大。 是否有自动化工具可以为我们完成(大部分)任务?
备注:
- 我们使用Embarcadero RAD Studio 2010。换句话说,C++方言包括VCL和其他扩展等。