过时旧代码的一些缺点:
- 不必要的代码混乱会增加整体复杂性,从而降低开发人员的工作效率
- 这些标记可以代替其他实验标记
- 标记过时也会导致错误
- 未使用的代码以及二进制文件都保留在源代码中
为减轻此类缺陷,Uber的研究人员开发了一种工具,该工具能够扫描源代码,以删除与过时或过时的特征标记(称为Piranha食人鱼)相关的代码。据乘车巨头称,该工具正在为Android和iOS代码库在不断发展的管道中运行,开发人员已使用它删除了大约两千个过时的功能标记及其相关代码。
目前,Piranha支持Objective-C,Swift和Java程序。PiranhaJava重构Java应用程序中过时的功能标志相关代码,尤其是针对Android平台的代码。PiranhaSwift是通过Swift语言使用SwiftSyntax实现的,用于重构Swift代码,并且PiranhaObjC用于清理Objective-C程序中的代码,并以C ++实现。
开发人员确定了执行代码清理的三个关键维度,分别是
- 与功能标志API紧邻的代码
- 由于执行上述步骤而无法访问的代码。此步骤也称为深层清洁。
- 删除与功能标志有关的测试