Code Review 这件事,AI 比人类强 10 倍

1.引言

代码审查,也就是 Code Review(以下简称 CR),一直是 IT 行业讨论的热门话题,因为它在很大程度上决定了公司的工程质量。

但是,人工 CR 的成本的是很高的,所以在实际落地场景,很少有公司把 CR 这件事做得很好。

不过,最近,某知名互联网公司的 CR 比赛结果出炉,AI 队伍的得分第一,让所有新老程序员队伍黯然失色。

在这次 CR 比赛中,AI 队伍的得分远远高于人类队伍。这不仅仅是一个简单的数字游戏,它背后反映的是 AI 在编程领域的潜力和效率。

一众高级工程师组队的参赛队伍平均得分只有 30 分,但是 AI 大模型的得分高达 80 分。

CR 代码,AI 比普通程序员强 10 倍,真不是盖的。

2.传统代码审查的挑战

传统人工 CR 代码的方式,不仅人工成本高,而且对 CR 的技术人员要求也很高,及其依赖高阶员工,而高阶员工的时间成本是很高的。

另外,实际 CR 的效果很不理想,花费大量时间,最终提升的项目质量也不达预期。

AI 时代,低成本完成 CR 这件事是非常容易的。

AI 可以快速分析大量代码,基于互联网海量的代码库,学习到正确的代码写法,找出潜在的错误和优化点,这是人类程序员很难做到的。

3.AI在代码审查中的应用

介绍一个真实例子

曾经在公司的代码库中见过这样一段代码,我们让 AI 帮我们分析一下,是否有 bug。

我们可以看到 AI 能很好的帮我们分析代码中的 bug,并提出解决方案。

那么具体如何在公司进行落地呢?

对于有一定基础的公司,公司都会有基础组建,提供 CR 链接,我们可以直接在 CR 链接上嵌入 AI 能力,实际开发人员可以很容易根据 AI 的建议,进行代码修改,提升代码质量。

如果公司缺少基建,那么可以在 gitlab 这样的代码仓库中增加一个钩子(hook),开发人员在提交代码的时候,将有变更的代码发给 AI 进行 CR,然后把 CR 意见发给开发人员。

4.AI 与传统代码审查的对比

相比于传统的人工 CR 代码,AI 速度快、准确率高、成本低。

还能免于人工代码 CR 过程中导致的沟通问题,比如有的开发人员不认可 reviewer 的意见,可能还会造成争执。

此外,人工 CR,可能还在存在时间冲突问题,导致 CR 不及时,影响功能上线,导致效率问题。

上层领导如果不认可的话,根据不会认可 CR 这件事,最终导致部门代码质量逐步下降,开发人员「只能在屎山上继续拉屎」。

4.结语

不过,AI 也有它的局限性。它缺乏人类的创造力和直觉,无法像人类程序员那样在遇到问题时进行灵活的思考和创新。

AI 虽然在 cr 代码,写单元测试,编写复杂算法有能很大程度上超过广大程序员,但是在企业级别的业务场景开发来说,AI 当前阶段还远未达到人类的水平。

所以,我们在使用 AI 的同时,也要不断提升自己的能力,与 AI 形成互补,这样才能适应时代发展。

此外,AI 在编程领域的应用,也给我们的职业生涯带来了新的机遇。程序员们可以学习如何与 AI 合作,利用 AI 的优势来提升自己的工作。这不仅能够提高个人的竞争力,也能推动整个行业的发展。

虽然给定引用中未直接提及AI客户端代码审查指南和最佳实践,但可以从相关信息中进行一定的推导。 ### 审查代码功能完整性 从AI原生IDE产品可以帮助完成自动理解整个代码仓库、修改多文件、跑测试、修复报错等工作来看,审查AI客户端代码时,要确保代码能完整实现客户端应有的功能,例如能否正确与服务器进行交互、是否能准确处理接收到的数据等。要检查代码是否具备自动处理常见问题的能力,就像IDE能修复报错一样,客户端代码也应能对一些异常情况进行处理[^1]。 ### 关注性能和效率 考虑到研发流程中任务拆解及提效颗粒度问题,在审查代码时要关注客户端代码的性能和效率。代码不能过于复杂导致运行效率低下,也不能拆解过粗使得AI效果不好。要确保代码的执行速度和资源占用在合理范围内,以发挥出AI的威力。 ### 数据安全与访问权限 从MCP核心采用的客户端 - 服务器架构可知,客户端会与服务器进行数据交互。审查代码时要确保客户端代码在数据传输和访问方面的安全性。检查代码是否遵循了正确的协议,能否安全地访问本地数据源和远程服务,防止数据泄露等问题。例如,代码是否对本地文件、数据库和服务的访问进行了权限控制,是否能安全地连接互联网上的外部系统[^4]。 ### 个性化功能审查 对于一些具备个性化功能的AI客户端,如智能浴室置物架系统中的AI Agent能生成个性化个人护理建议,审查代码时要确保客户端能根据用户的个人信息和偏好生成准确的个性化内容。检查代码是否能正确分析收集到的数据,并根据这些数据做出合理的决策和生成相应的内容[^3]。 ### 代码可读性和可维护性 代码应该具有良好的可读性和可维护性,方便后续的开发和修改。审查时要检查代码的注释是否清晰,变量和函数命名是否合理,代码结构是否模块化等。 ### 代码示例 以下是一个简单的Python示例,用于检查客户端代码是否能正确处理异常情况: ```python import requests try: response = requests.get('https://example.com') response.raise_for_status() except requests.exceptions.HTTPError as http_err: print(f'HTTP error occurred: {http_err}') except Exception as err: print(f'Other error occurred: {err}') ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍六七AI编程

你猜你给我1分我要不要

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值