科技诗刻|阿里巴巴智能化代码平台的探索与实践(节选)
2020年6月13日 , 在2020阿里巴巴研发效能峰会''架构设计与代码智能专场''中阿里巴巴高级技术专家张玉明(玄坛)发表题为《阿里巴巴智能化代码平台的探索与实践》的主题演讲 , 详细介绍了阿里巴巴打造智能化代码管理平台的起因、技术难点和解决思路以及应用案例 , 并发布云效智能研发助手''云豆'' 。 本文节选自玄坛的分享 , 为方便开发者阅读 , 删除''背景''介绍部分 , 将集中讲解云效代码管理平台中智能化技术的应用以及实现原理 。
人工智能赋能开发者解决软件研发问题
作为一名开发者 , 在日常工作中会遇到哪些问题?主要有以下四点:需求不明确或需求经常变动;缺陷难发现:在开发的代码中经常隐藏难以发现的BUG;编码效率低:编码效率不够高 , 没办法合理安排编码时间;线上问题难定位 。
有没有解决以上问题的灵丹妙药呢?云效团队给出的解法是''工具+数据+智能'' 。 其实我们每天在使用的云效代码管理平台、钉钉等都是非常好用的工具 。 在这些工具基础之上 , 结合大数据、智能化手段是否可以在代码编写提效、代码质量、安全提升方面做一些探索呢?
文章图片
首先看一下我们在''大数据''方面是如何做的 。 在阿里巴巴集团内部的代码管理平台上每天都会产生大量代码数据 , 我们将其中公开的代码离线存储到代码仓库中去构建代码数仓 。 基于代码数仓可以构建代码图谱 , 比如我们会以代码、用户、代码库这些维度进行抽象 , 将其转化为实体 , 并通过对这些实体关系的标签化 , 从而构建代码画像、用户画像、代码库画像 。 进而为上层的智能化服务提供有力的数据支撑 。 同时我们以代码为中心 , 去拉通研发数据、协作数据、应用运行数据 , 去构建研发图谱 , 围绕整个研发生命周期去提供数据方面的支撑 。
文章图片
那么有了这些数据 , 我们可以做什么事情?基于评论数据 , 结合智能化手段 , 可以做到需求分析自动化 , 比如可以基于前台用户咨询的问题 , 结合智能化手段来帮助产品经理明确用户诉求 , 提炼产品文档 。 基于代码数据 , 可以实现代码分析自动化 , 如可以应用到代码缺陷检测和代码自动编写等领域中 。 基于用户的操作数据 , 可以做到软件测试自动化 , 如现在很火爆的UI测试、Mock测试等 。 基于日志数据 , 可以实现故障诊断自动化 , 如日志自动打点、日志智能分析以及服务智能降级等 。
云效推智能研发助手''云豆''代码评审更智能
接下来看一下我们是如何在云效代码管理平台(Codeup)中将代码智能化能力进行落地的 。 首先来看代码评审 。
文章图片
传统的代码评审分为三个阶段:新建评审、评审中、评审结束 。 在这三个阶段中 , 用户都会产生哪些行为呢?在新建评审阶段 , 首先需要选定某个分支 , 然后选择评审人 , 最后需要填写评审描述 , 通过这三步操作就新建了一个评审任务 。 在评审中 , 评审者首先要查看评审文件 , 然后提出问题 , 最后由开发者解决问题 。 如果评审通过 , 并完成合并代码 , 则评审结束 。
在上述过程中存在哪些痛点呢?在选择评审人环节 , 开发者经常不知道应该选择谁作为这段代码的评审者;在评审环节 , 评审者写不清评审描述;变更文件过多 , 无法有效评审;在评审结束环节 , 经常需要人工去解决代码冲突这类问题 。
其实有''痛点''就有''机会点'' , 针对这些在代码评审过程中的痛点 , 我们还可以做什么呢?比如 , 是否可以智能推荐评审人?智能生成评审描述?是否可以对改动过多的''大评审''进行自动化拆解?在出现代码冲突时 , 是否可以进行智能化修复?
推荐阅读
- 科技一哥|荣耀30青春版图集赏析:触觉与视觉的完美享受
- 科技犬君|vs 索尼A9G 谁强?,上半年用户喜爱手机盘点;小米电视大师65英寸OLED
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- HAO懂科技|小米“神机”要来了?,小米正式“反击”!上下对折+骁龙865
- 阿拉图图科技说|而给华为仅仅是800万枚!,台积电为苹果准备8000万枚芯片
- 网罗说科技|三星note10一夜成“中端机”,还是256GB+3500mAh,三星扛不住了
- 科技数码迷|华为+荣耀别不报!入门级机型你们真没有Redmi良心
- 「小米科技」小米11Pro宣布新技术!首发骁龙875+屏下镜头,米粉:价格有点小贵
- 小熊科技|你会考虑吗?,三星顶级旗舰清仓!5G网络+45W快充+2k屏幕
- 简简科技|联想:国内同步上市,支持5G,界读丨摩托罗拉折叠手机Razr2曝光