1

我正在对一个项目进行一些隐形敏捷开发。首席程序员将单元测试、重构等视为资源浪费,否则无法说服他。他的哲学是“如果它没有坏就不要修复它”,我理解他的观点。他从事该项目已有十多年了,对代码了如指掌。我不想讨论开发实践。

我是该项目的新手,我的任务是添加一个新功能。我之前从事过遗留项目,并使用敏捷开发实践取得了良好的效果,但这些团队更容易接受这个想法,并且不害怕对代码进行更改。

有人告诉我,我可以使用我想要的任何开发方法,但我必须将我的更改限制为仅添加该功能所必需的那些。我正在为我正在编写的新类使用 tdd,但由于全局变量的自由使用和我需要与之交互的类中的高耦合性,我一直遇到障碍。通常我会开始为这些类提取接口,并通过将它们作为构造函数参数或公共属性注入来显式地使它们对全局变量的依赖。

我可以争辩说这些改变是必要的,但考虑到领导从来没有做出过改变,我怀疑他会以我的方式看待它。我可以使用哪些技术来打破这些依赖关系,而不会激怒首席开发人员?

我使用以下方法取得了一些进展:

  • 提取接口(对于我正在创建的新类)
  • 使用测试存根扩展和覆盖任性的类。(幸运的是,大多数方法都是公共虚拟的)

但这两个只能让我到目前为止。

笔记

负责人的部分职责是审查代码提交。他可能会将反腐败层解释为充其量是过度的,最坏的情况是侮辱。

4

2 回答 2

0

您应该创建一个反腐败层,您基本上在您和使用包装类的“专家”代码之间保留一个层。这将是处理这种废话的代价。

还有一些模拟框架可以让您处理不必更改现有代码的问题,但这些可能会比简单的包装类在政治上给您带来更多麻烦。

于 2010-05-11T18:51:14.570 回答
0

在这种情况下,反腐败层可能会起作用,但您必须小心,因为其中太多会导致非常可怕的结果。

使用这样一个层,您可以威胁系统的其余部分,就像威胁外部资源一样。

于 2010-05-11T18:51:40.553 回答