Uber开源Piranha:一种自动删除陈旧代码的工具


过时旧代码的一些缺点:

  • 不必要的代码混乱会增加整体复杂性,从而降低开发人员的工作效率
  • 这些标记可以代替其他实验标记
  • 标记过时也会导致错误
  • 未使用的代码以及二进制文件都保留在源代码中

为减轻此类缺陷,Uber的研究人员开发了一种工具,该工具能够扫描源代码,以删除与过时或过时的特征标记(称为Piranha食人鱼)相关的代码。据乘车巨头称,该工具正在为Android和iOS代码库在不断发展的管道中运行,开发人员已使用它删除了大约两千个过时的功能标记及其相关代码。
目前,Piranha支持Objective-C,Swift和Java程序。PiranhaJava重构Java应用程序中过时的功能标志相关代码,尤其是针对Android平台的代码。PiranhaSwift是通过Swift语言使用SwiftSyntax实现的,用于重构Swift代码,并且PiranhaObjC用于清理Objective-C程序中的代码,并以C ++实现。

开发人员确定了执行代码清理的三个关键维度,分别是

  • 与功能标志API紧邻的代码
  • 由于执行上述步骤而无法访问的代码。此步骤也称为深层清洁。
  • 删除与功能标志有关的测试