食人鱼的菜单上一般没有代码,但今天说的这种鱼却有所不一样。git
Uber 开源了一款自动化工具,名为 Piranha(意为:食人鱼),该工具可以自动从应用程序代码库中删除过期的和未使用的代码。github
根据 Uber 官方博客的介绍,在Uber,工程师们使用功能标记来自定义咱们的移动应用执行,为不一样的用户组提供不一样的功能。这些标志容许例如在运营的不一样区域中本地化用户的体验,更重要的是,逐步向用户推出功能并尝试使用同一功能的不一样变体。安全
可是,在某项功能已 100% 推广给用户或实验性功能被认为不成功以后,代码中的功能标志就过期了。这些非功能性特征标志表明技术负担,使开发人员难以在代码库上工做,而且可能使应用程序臃肿,须要进行没必要要的操做,这些操做会影响最终用户的性能并可能影响总体应用程序的可靠性。 工具
对于工程师而言,消除这些「债务」可能会很是耗时,从而阻止他们开发新功能。性能
为了使该过程自动化,Uber 开发了 Piranha,该工具可扫描源代码以删除与过期或过期的功能标志相关的代码,从而使代码库更干净,更安全,性能更高且更易于维护。spa
目前为止,Uber 已经实现了用 Piranha 来重构 Objective-C、Swift 和 Java 程序。接下来,Piranha 有可能会扩展至更多语言(例如 Kotlin,Go 等),同时 Uber 也号召更多开发人员来一块儿为它作出贡献。blog
Piranha 项目博客:
https://eng.uber.com/piranha/GitHub 地址:
https://github.com/uber/piranhaip