优步在开源平台上提供了Pirhana,代码库中删除过时代码的工具
发布日期:2021-06-29 15:02:21
浏览次数:3
分类:技术文章
本文共 1401 字,大约阅读时间需要 4 分钟。
优步在开源平台上提供了Pirhana,代码库中删除过时代码的工具
项目地址:
这是一种自动从代码库中删除过时代码的工具。
- 该公司表示,它消除了工程师亲自参与代码删除任务的需要,这通常会阻止他们开发新的功能。
- 具体来说,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模型。转载地址:https://code100.blog.csdn.net/article/details/107359611 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月15日 10时53分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
如何设计自己的第一个加密交易机器人?
2019-04-29
浪费在Excel上的时间:如何开始专家式机器学习实验追踪?
2019-04-29
失业三星期:我寻找第二份编程工作之路
2019-04-29
跳过媒介,我们能不能只用思想控制计算机?
2019-04-29
服务器宕机:谷歌最近经历了“黑客攻击”吗?
2019-04-29
RepVGG:极简架构,SOTA性能,让VGG式模型再次伟大
2019-04-29
提升查询技能,这7条SQL查询错误必须解决
2019-04-29
TKDE 2020 | 综述:基于知识图谱的推荐系统
2019-04-29
休息时间!哪些业余活动能提升开发人员的技能?
2019-04-29
把人脑“森林”上传到计算机:人类脑计划只是一个科幻野心?
2019-04-29
智力测试:如何超越动物之智?
2019-04-29
事关人类生存?为什么要探寻AI系统的可解释性?
2019-04-29
安全工程师必知:常见Java漏洞有哪些?
2019-04-29
数据科学中的计量经济学技术
2019-04-29
突破边界:数据科学、数据工程和技术的未来
2019-04-29
一切有迹可循!优秀程序员的9个早期迹象
2019-04-29
在后台的python:众多程序员无法攻克的难题
2019-04-29
未来战争:装载AI的美国空军侦察机已经试飞……
2019-04-29
屡战屡败:为什么你会觉得学习编程很难?
2019-04-29
“狙击”特斯拉:电动汽车后起之秀的最后一战
2019-04-29