作为维护大量遗留代码的一部分,我们需要更改部分设计,主要是使其更具可测试性(单元测试)。我们需要解决的问题之一是组件之间的现有接口。两个组件之间的接口是一个只包含静态方法的类。
简化示例:
class ABInterface {
static methodA();
static methodB();
...
static methodZ();
};
该接口由组件 A 使用,因此不同的方法可以使用 ABInterface::methodA() 来准备一些输入数据,然后调用组件 B 中的适当函数。
现在我们出于各种原因尝试重新设计这个界面:
扩展我们的单元测试覆盖率——我们需要解决组件之间的这种依赖关系,并且要引入存根/模拟
这些组件之间的接口与原始设计不同(即,用于组件间 i/f 的许多新功能是在此接口类之外创建的)。
- 代码很旧,随着时间的推移发生了很大变化,需要重构。
更改不应对系统的其余部分造成破坏。我们试图限制在生产代码中留下许多测试所需的工件。性能非常重要,在重新设计后应该没有(或非常少)降级。代码是 C++ 中的 OO。
我正在寻找一些想法采取什么方法。关于如何有效地做到这一点的任何建议?