当前位置:首页 > 报告详情

A3--王敏--CR Copilot - 智能化代码评审的探索与实践.pdf

上传人: 张** 编号:181322 2024-08-01 40页 4.25MB

1、智能化代码评审的探索与实践王敏腾讯 代码智能化 高级研究员王敏(robinmwang)腾讯 高级研究员腾讯 研发管理部 code平台中心 代码智能化团队 高级研究员目前主要负责腾讯工蜂Copilot的软件测试、代码评审等相关智能化研究,保障腾讯内部开发团队的代码质量,提升公司内部团队的软件研发效率毕业于北京大学,软件工程专业,博士学历。曾在软件工程领域的ASE、FSE、TSE、软件学报等国内外顶级会议期刊上发表多篇学术论文,曾作为技术骨干参与国家重点研发计划基于大数据的软件智能开发方法和环境课题项目的技术研发。毕业后就职于腾讯公司,从事代码智能化等方面的研究开发工作 目录01CONTENTS0

2、203代码评审的概念和价值痛点智能化代码评审的现状与挑战智能化代码评审在腾讯的实践之路04智能化代码评审的未来与展望智能化CR 基本概念和价值痛点代码评审的基本概念代码审查(Code Review,CR)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查https:/zh.wikipedia.org/wiki/代码审查相似概念:代码评审、代码走查、软件检查、合并审查Pull requestcode diff 1code diff

3、 2code diff nmergerepositoryCode Review代码评审的一般流程静态扫描/检测架构设计/重构业务复盘/讨论代码优化/规范团队学习/交流代码提交(diff)结果分析合入代码 CR概念宽泛,涉及面广 高质量CR,知识密集 CR高频发生,必不可少基于变更高频、重要包罗万象纷繁复杂丰富的评审经验深刻的知识背景代码评审的价值和企业痛点 价值:为什么做代码评审直接原因:防止潜在缺陷、确保代码规范、提出优化方案间接原因:完成知识转化、了解开发进度、增强团队意识 理想状态:多快好省、稳步迭代、共同成长 痛点:一切从评审者的角度出发技术原因:评审不易,需具备更丰富的开发经验和能力

4、非技术原因:没时间、不想看、CR不算工作量、存在社交距离 现实状态:排斥评审、流于形式、效率缓慢智能化CR 现状分析与主要挑战 智能化CR现状分析Review意见生成行间评论生成PR总体评价Code suggestion变更描述PR描述(High level summary)文件变更解释(Walkthrough)团队周报(概括近一周重要的PR修改)Squash merge msg 生成变更大小评估评审chat扮演多个不同领域的专业工程师,组合和过滤多方的评审意见(结合静态分析/漏洞检测等第三方工具)AICR Agent评审概览(summary+变更类型+工作量预估)diff评审commit m

5、sg 生成(基于git diff)chatSourcery、CodeRabbit、字节跳动Sourcery、gitlab DuoGoogle、Cruz-codeGitHub copilot、what the diff、CodeRabbit、github Duo、atlanssianGitHub copilot、CodeRabbitwhat the diffgithub DuoBito AIAgent(/describe)、What the diff(/wtd xxxx)、GitHub copilot、CodeRabbitBito AI、CodiumAIs PR-AgentCodeGeexCod

6、eGeex缺陷识别代码优化GitHub copilot、通义灵码、百度comateGitHub copilot、通义灵码、百度comateWeb产品形态IDE产品形态AICR智能化CR现状分析GitHub CopilotBito AIGitLab DuoAtlassian IntelligenceCodeRabbitCodiumAI百度百度 Comate阿里巴巴阿里巴巴 通义灵码通义灵码模型Codex/GPT4GPT4Vertex AI Codey text-bisonOpenAI GPT4/3.5OpenAI文心通义IDE插件PR描述Diff评审代码建议CR评估chat其他团队周报集成静态分

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了智能化代码评审(CR)的概念、价值、现状与挑战,以及腾讯在智能化CR方面的实践与成果。 1. 代码评审(CR)是指对计算机源代码进行系统化审查,目的是找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。CR的价值在于防止潜在缺陷、确保代码规范、提出优化方案等。 2. 智能化CR的现状包括多种产品形态,如IDE插件、PR描述生成、代码建议等。但面临的主要挑战包括高质量CR数据的获取、CR需要更高层次的领域知识、大模型的CR能力难以客观评估等。 3. 腾讯在智能化CR方面的实践包括:工蜂智能化CR产品演化、基于私域知识库的智能化CR流程、智能化CR能力的评测等。通过这些实践,腾讯在智能化CR方面取得了显著成果,如行间评论生成、一键优化/修复代码、MR/提交描述生成等。 4. 智能化CR的未来展望包括人机交互的协同CR方式、数据驱动与知识驱动的结合、概率统计与可解释性的提升等。
智能化代码评审如何提高代码质量? 腾讯如何利用AI进行代码评审? 智能化代码评审在实际应用中面临哪些挑战?
客服
商务合作
小程序
服务号
折叠