优步在开源平台上提供了Pirhana,代码库中删除过时代码的工具

优步在开源平台上提供了Pirhana,代码库中删除过时代码的工具

项目地址:https://github.com/uber/piranha

这是一种自动从代码库中删除过时代码的工具。

  • 该公司表示,它消除了工程师亲自参与代码删除任务的需要,这通常会阻止他们开发新的功能。
  • 具体来说,Pirhana可以帮助维护应用程序的企业加快开发周期,从而降低成本,改善终端用户体验。
    “在优步,我们使用特性标志来定制我们的移动应用程序执行,为不同的用户提供不同的特性。
    例如,这些标志允许我们将用户体验本地化到我们运营的不同地区,更重要的是,我们可以逐步向用户推出功能,并尝试相同功能的不同变体,”优步在一篇博客文章中写道。
  • “然而,当一个功能被100%发布给我们的用户,或者一个实验功能被认为不成功时,代码中的功能标志就会过时。
    ”这些非功能性的特征标志代表了技术债务,使得开发人员难以在代码库上工作,并可能使我们的应用程序膨胀,需要不必要的操作,从而影响最终用户的性能,并可能影响整个应用程序的可靠性。”
  • 然后,Pirhana扫描Objective-C、Swift和Java中的源代码,删除与过时的特性标志相关的代码,从而得到更简洁、更高效、更可维护的代码库。优步表示,其Android和iOS代码库正在运行Piranha,该工具已被用于删除大约2000个过时的特征标志及其相关代码。
  • Piranha将旗子的名称、预期的处理行为和旗子作者的姓名作为输入。
  • 然后,它分析程序的抽象语法树,以生成打包到所谓的diff中的重构(代码结构中不影响行为的更改),并根据处理行为标记要删除的代码路径。
  • 差异被分配给标志的作者以进行进一步的检查,然后作者可以提交对主代码库的更改,或者在必要时执行额外的重构。

Uber指出,Piranha既可以作为独立的工具使用,也可以作为管道的一部分

  • 在管道配置中,它向标志管理系统查询过时标志的列表,并为每个标志提供过时标志的名称、所有者和预期的输出行为。
  • Piranha生成一个diff并将其放到代码审查系统中,标记的原始作者作为默认的审查者。作者可以按原样接受差异,根据需要修改它,或者拒绝并将标记标记为未过时。
  • 该管道还生成一个清理任务,跟踪每个生成的差异的状态,并使用一个提醒机器人PiranhaTidy定期地在与Piranha相关的开放任务上添加提醒。

在这里插入图片描述

  • Piranha管道使用一种启发式方法,将标记管理系统中超过特定时期(如8周)未修改的标记视为失效,并为这些标记生成差异。负责处理Piranha输出差异的各个团队为旗子的过时设定了确切的时间段。
  • 根据优步的说法,Pirhana可以处理数百万行代码,平均只需不到3分钟就可以生成差异。它现在可以用于广泛使用特性标志的代码,并且具有特定的api来控制特性标志的行为。
  • “我们欢迎开发者为Piranha做出贡献,”优步写道。“欢迎各种能力的开发人员,致力于Piranha的实现可能是了解该领域非专家的程序分析的细微差别的好方法。”

最近,优步在某种程度上一直处于开源状态。

Pirhana的发布是在发布了用于调试人工智能和机器学习模型的可视化工具之后。
这是在Plato发布之后发生的,Plato是一个用于构建、培训和部署人工智能和机器学习会话的平台。去年年初,该公司首次推出了基于谷歌的TensorFlow框架的开放源代码工具箱Ludwig,该框架允许用户无需编写代码就可以训练和测试AI模型。

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/107359611