我正在对一个项目进行一些隐形敏捷开发。首席程序员将单元测试、重构等视为资源浪费,否则无法说服他。他的哲学是“如果它没有坏就不要修复它”,我理解他的观点。他从事该项目已有十多年了,对代码了如指掌。我不想讨论开发实践。
我是该项目的新手,我的任务是添加一个新功能。我之前从事过遗留项目,并使用敏捷开发实践取得了良好的效果,但这些团队更容易接受这个想法,并且不害怕对代码进行更改。
有人告诉我,我可以使用我想要的任何开发方法,但我必须将我的更改限制为仅添加该功能所必需的那些。我正在为我正在编写的新类使用 tdd,但由于全局变量的自由使用和我需要与之交互的类中的高耦合性,我一直遇到障碍。通常我会开始为这些类提取接口,并通过将它们作为构造函数参数或公共属性注入来显式地使它们对全局变量的依赖。
我可以争辩说这些改变是必要的,但考虑到领导从来没有做出过改变,我怀疑他会以我的方式看待它。我可以使用哪些技术来打破这些依赖关系,而不会激怒首席开发人员?
我使用以下方法取得了一些进展:
- 提取接口(对于我正在创建的新类)
- 使用测试存根扩展和覆盖任性的类。(幸运的是,大多数方法都是公共虚拟的)
但这两个只能让我到目前为止。
笔记
负责人的部分职责是审查代码提交。他可能会将反腐败层解释为充其量是过度的,最坏的情况是侮辱。