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

tomato 2020-03-18 09:22:40 2252

今天,优步推出了开源软件Piranha,这是一款自动从应用程序代码库中删除过时和未使用代码的工具。该公司表示,它消除了工程师亲自参与代码删除任务的需要,这通常使他们无法使用较新的功能。

具体而言,Piranha可以帮助维护应用程序的企业加快其开发生命周期,进而可以降低成本并改善最终用户体验。

“在Uber,我们使用功能标记来自定义我们的移动应用执行,为不同的用户组提供不同的功能。例如,这些标志使我们能够将用户的体验本地化到我们运营的不同区域,更重要的是,逐步向我们的用户推出功能并尝试使用相同功能的不同变体,” Uber在博客中写道。“然而,当一个功能被100%发布给我们的用户,或者一个实验功能被认为不成功时,代码中的功能标志就会过时。”这些非功能性特征标志代表技术负担,使开发人员难以在代码库上工作,并可能使我们的应用程序膨胀,需要不必要的操作,从而影响最终用户的性能,并可能影响整个应用程序的可靠性。”

Piranha扫描Objective-C、Swift和Java中的源代码,删除与过时的特性标志相关的代码,理论上生成更干净、更高效、更可维护的代码库。优步表示,其Android和iOS代码库正在运行Piranha,该工具已被用于删除大约2000个过时的特征标志和相关代码。

Piranha将标志名称,预期的处理行为以及标志作者的名称作为输入。然后,它分析程序的抽象语法树以生成重构(不影响行为的代码结构更改),该重构打包到所谓的diff中,并标记要删除的代码路径。将差异分配给标志的作者以进行进一步检查,后者可以将更改提交到主代码库,或者在必要时执行其他重构。

Uber指出,Piranha既可以用作独立工具,也可以用作管道的一部分。在管道配置中,它查询标记管理系统以获取陈旧标记的列表,并为每个标记提供陈旧标记的名称,其所有者以及预期的输出行为。Piranha生成一个差异并将其放入代码审查系统中,该标志的原始作者为默认审查者。(作者可以按原样接受diff,根据需要对其进行修改,也可以拒绝并标记该标记为不过期。)然后使用提醒机器人PiranhaTidy生成清理任务,以跟踪每个生成的diff的状态。会定期添加有关与Piranha相关的任务的提醒。

Piranha管道使用启发式方法来考虑在标记管理系统中未修改超过特定时间段(例如8周)的标记,并为这些标记生成差异。负责处理Piranha的输出差异的各个团队为标志的陈旧性配置准确的时间段。

根据Uber的说法,Piranha可以处理数百万行代码,平均不到3分钟即可生成差异。从今天开始,它可用于广泛使用功能标记并具有特定API来控制功能标记行为的代码。“我们欢迎开发人员为Piranha做出贡献,” Uber继续说道。“欢迎所有能力的开发人员,并且进行Piranha的实施工作可能是了解该地区非专家进行程序分析的微妙方式的好方法。”

优步最近一直处于开源状态。Piranha的发布是在Manifold揭幕之后发布的。Manifold是用于调试AI和机器学习模型的可视化工具。随后发布了Plato,这是一个用于构建,培训和部署对话式AI和机器学习的平台。去年初,该公司首次推出了Ludwig,这是一个基于Google TensorFlow框架构建的开源工具箱,该工具箱使用户无需编写代码即可训练和测试AI模型。在2019年2月,Uber推出了自主可视化系统(AVS),这是一种基于Web的独立技术,用于了解和共享自主系统数据。


声明:本文由易百纳技术社区编写,文章内容来自venturebeat,版权归原作者所有,转载请注明出处,如有侵权请联系删除。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
tomato
红包 点赞 收藏 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
tomato
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区