作者:致信
背景
随着软件开发复杂度的持续攀升和产品迭代周期的不断压缩,传统开发模式正面临双重挑战:
- 一方面,开发者需要在有限时间内高效完成高质量代码编写。
- 另一方面,团队需投入大量资源进行人工代码审查以确保可维护性与安全性。
然而,人工开发易受认知负荷限制导致效率瓶颈,人工评审又常因知识经验差异引发疏漏或标准不统一。如今随着 AI 技术的突破,这一问题出现了全新解法:使用编码助手(包括不限于通义灵码、Qoder、Cursor、Claude Code 等工具,本文以通义灵码作为示例) + 云效 AI 评审,助力解决传统开发流程中的一些挑战。
用户核心诉求
- 效率提升:开发者希望减少重复性编码和调试时间,专注于核心逻辑设计。
- 质量保障:团队希望规避人为疏忽导致的质量风险,确保代码符合规范且可维护。
- 成本优化:企业希望降低代码返工率与缺陷修复成本,加速产品迭代周期。
解决方案
方案介绍
- 通义灵码 [ 1] 是由阿里云提供的智能编码辅助工具,提供代码智能生成、智能问答、编程智能体等能力,为开发者带来高效、流畅的编码体验。
- 云效 AI 评审 [ 2] 是由阿里云云效 Codeup 提供的智能代码评审辅助工具,提供代码智能评审、自定义规则、标题/描述自动生成、智能对话等能力,缩短 Code Review 时间,提升代码质量。
以下为通义灵码 + 云效 AI 评审方案的流程介绍:
-
用户需求:流程起点,用户提出代码开发、缺陷修复的需求
-
通义灵码代码生成:理解用户需求,转化为代码实现(AI 生成代码需 🧑💻 最终审核,不可直接用于生产环境)
-
Codeup CR:通过推送评审模式 [ 3] ,自动创建 Codeup 代码评审
-
Codeup 智能评审:立即对代码进行 AI 评审(AI 辅助审核代码, 🧑💻 根据建议进行代码调整)
-
步骤 2~4 构成一个 loop ,🧑💻 结合代码 AI 生成和代码 AI 评审的优势,直到代码保质保量完成
-
交付高质量代码
同时,用户可结合云效流水线 [ 4] 集成 CI/CD 直到将需求发布上线。流程图如下:
方案亮点
代码智能生成、编程智能体等多种协作模式
自动触发 CR 审查
支持设置不同的分支默认进行 AI 评审。
清晰简洁的摘要,重要的变更明细
代码逐行评审,直观明了的报告
自定义规则
让 AI 评审更符合团队的规范与习惯,提供一致性更强的评审体验。
问题严重程度
默认 >= CRITICAL 级别的问题会被标记,可选项 BLOCKER、CRITICAL、MAJOR、MINOR。
path_instructions
标题/描述自动生成
AI 助手对话,变更代码解释
实践指南
Codeup 代码库初始化
新建代码仓库,初始化 spring-boot-demo 脚手架代码。在设置 - 推送规则设置中,开启推送评审模式。(当然,我们也可以使用 feature 分支加手动创建 CR 的方式。)
AI 助手设置默认评审分支
Clone 代码库到本地,使用通义灵码开发需求
接下来实现一个新功能:支持文件上传并保存到指定目录下,并且限制文件大小的功能
- 使用通义灵码智能体模型,选择 qwen3-coder / qwen3-thinking 模型,输入以下指令
新增一个 FilesController 实现接收文件上传并保存到 /tmp/files 目录下,限制上传的文件不能超过1MB
- 通义灵码会根据我们的要求,自动调用不同的工具以实现需求
- 启动服务
- 调用接口上传一个小于 1MB 的文件 test.txt,确认文件上传是否成功
- 测试上传超过 1MB 的文件,可以看到程序返回了 HTTP Request Entity Too Large 413 状态码
推送代码,使用智能评审
- 代码提交推送后,系统自动生成 CR
➜ demo git:(main) ✗ git add .
➜ demo git:(main) ✗ git commit -m "feat: support file upload with file size limit 1MB"
[main 00b96a4] feat: support file upload with file size limit 1MB
2 files changed, 42 insertions(+)
create mode 100644 src/main/java/com/example/demo/FilesController.java
➜ demo git:(main) git push
...
remote: +------------------------------------------------------------------------------------+
remote: | The following tips are provided by Codeup: |
remote: +------------------------------------------------------------------------------------+
remote: | Code review #1 has been created, please visit: |
remote: | https://codeup.aliyun.com/xxxx/spring-boot-demo/change/1 |
remote: +------------------------------------------------------------------------------------+
To https://codeup.aliyun.com/xxxx/spring-boot-demo.git
* [new reference] main -> refs/changes/1/head
- 访问 CR 链接,可以看到云效 AI 助手已经在进行代码评审
- 新增的代码可能不会 >= CRITICAL 问题,我们“故意”修改一个有问题的 commit 来验证识别 AI 评审的能力
- 调整 MAX_FILE_SIZE 从正确的 1MB 改为错误的 1024MB
- 调整 file size 判断的逻辑从正确的大于 MAX_FILE_SIZE 改为错误的小于 MAX_FILE_SIZE
- 回到 CR 页面重新触发请求评审,稍等片刻可以看到识别出“文件大小判断逻辑反向”和“MAX_FILE_SIZE 常量值错误设置为 1GB”这两个新引入的缺陷
相关链接:
[1] 通义灵码
https://help.aliyun.com/zh/lingma/product-overview/introduction-of-lingma
[2] 云效 AI 评审
https://help.aliyun.com/zh/yunxiao/user-guide/ai-intelligent-code-review
[3] 推送评审模式
https://help.aliyun.com/zh/yunxiao/user-guide/push-review-mode
[4] 云效流水线
https://www.aliyun.com/product/yunxiao/flow