把一个PocketEnglish鸿蒙 App 的开发全部扔给了华为云码道 CodeArts 智能体,自己只负责“提要求、查验收“,可行吗?
一键开通华为云码道 CodeArts 代码智能体:https://developer.huaweicloud.com/codeartsco.html?source=dmzntgwatomgit1&sourcead=dmzntgwatomgithd
前言
把一个PocketEnglish鸿蒙 App 的开发全部扔给了 华为云码道 CodeArts 智能体,自己只负责"提要求、查验收",可行吗?
答案是完全可行,用最近流行的话术来说,甚至可以给到夯!
这次我做了个测评:把一款 英语学习 HarmonyOS App 的完整开发过程——需求、评审、编码、修复——全部交给华为云码道 CodeArts 代码智能体,自己只负责提需求、做验收。这篇文章记录整个过程,包括踩过的坑,以及与传统开发流程的真实对比。可以先提前给大家看看,最后开发出来的App长啥样:
一、为什么做这个测评
传统开发一个 App,流程大致是:产品写需求 → 团队评审 → 排期编码 → 测试提 bug → 开发修复。每个环节都依赖"人"的参与:需求要反复对齐、评审要开会、编码要一行行写、修 bug 要逐条定位。环节越多,沟通成本越高,交付周期越长。
所以我想验证一个问题:当需求、评审、编码、修复这些环节都交给代码智能体时,它能否真正理解和跑通一个完整的开发闭环?
测评对象选择了华为云码道 CodeArts 代码智能体。它的使用方式非常简单——已经集成在 AtomGit 工作台中,登录即可开始使用,不需要额外搭建环境。界面是这样的:

我给自己设定的角色只有两个:产品经理(写需求)和验收员(看结果)。接下来,就看看它到底能顶到什么程度。
二、需求阶段:把需求文档"喂"给 AI
2.1 需求输入
开发的项目是一款基于 HarmonyOS 的英语单词学习应用——口袋英语 Pocket English,核心围绕"单词学习"场景,我们自己整理的初步需求如下:
| 模块 | 描述 |
|---|---|
| 单词学习 | 卡片式单词学习,支持 3D 翻转、发音、收藏 |
| 练习模式 | 答题练习、考试模式、错题记录、收藏记录 |
| 我的 | 个人信息、练习记录、设置等功能 |
2.2 AI 如何"消化"需求
借助华为云码道智能体,我们先将原始需求输入给它,让它进一步优化完善,转化为可执行的开发计划——这个环节在传统流程中对应" 产品经理进行需求设计 "。可以看到华为云码道智能体完成了需求拆解,并帮我们整理出详细的开发需求,如下所示:

最后输出的需求如下所示:
- 单词卡片:支持 3D 翻转动画(rotateY + opacity),正面展示单词、音标、发音按钮、词性、中文释义、英文例句、收藏入口;反面展示详细释义、例句翻译、分类标签
- 语音播报:点击发音按钮调用 AudioPlayer 播报单词发音
- 分类筛选:全部 / CET-4 / CET-6 / 雅思 / GRE 五大分类
- 学习统计:顶部展示已学数量、今日目标、进度条
- 操作逻辑:「左滑 待复习」「右滑 已掌握」,自动切换下一张卡片
- 单词库:200 个单词,覆盖五大类
- 首页:Banner 轮播、金刚区 5 个功能入口、4 种练习模式卡片、今日学习进度概览
# 口袋英语 App
一款基于 HarmonyOS 的英语单词学习应用,提供单词卡片翻转、语音播报、分类学习、学习进度追踪等功能。
## 功能介绍
本应用将聚焦开发一款英语学习工具,核心围绕「单词学习」场景设计:
| 模块 | 描述 |
|------|------|
| **单词学习** | 卡片式单词学习,支持翻转、发音、收藏 |
| **练习模式** | 答题练习、考试模式、错题记录、收藏记录 |
| **我的** | 个人信息、练习记录、设置等功能 |
### 单词学习页
- **卡片翻转**:支持 3D 翻转动画(rotateY + opacity),点击卡片切换正反面
- **单词信息**:正面展示单词、音标、发音按钮、词性、中文释义、英文例句、收藏入口
- **详细释义**:反面展示详细释义、例句翻译、分类标签
- **语音播报**:点击发音按钮调用 AudioPlayer 播报单词发音
- **分类筛选**:支持按全部 / CET-4 / CET-6 / 雅思 / GRE 分类筛选
- **学习统计**:顶部展示已学数量、今日目标、进度条
- **操作按钮**:「左滑 待复习」「右滑 已掌握」标记学习状态,自动切换到下一张卡片
- **单词库**:200 个单词,覆盖基础、四级、六级、雅思、GRE 五大类
### 首页
- **Banner**:顶部轮播图展示
- **功能入口**:金刚区 5 个核心功能入口(Grid 布局)
- **练习模式**:4 种练习模式卡片入口
- **今日学习**:学习进度概览卡片
## 核心功能
```ts
英语学习 App
|-- 首页(练习)
| |-- Banner 轮播
| |-- 功能入口(金刚区)
| |-- 练习模式(答题/考试/错题/收藏)
| |-- 今日学习进度
|-- 单词学习
| |-- 分类 Tabs(全部/CET-4/CET-6/雅思/GRE)
| |-- 单词卡片翻转
| | |-- 正面:单词、音标、发音、词性、释义、例句、收藏
| | |-- 背面:详细释义、例句翻译、分类标签
| |-- 学习进度(已学/总数/今日目标)
| |-- 语音播报
| |-- 学习操作(待复习/已掌握/上一张/下一张)
|-- 我的
| |-- 个人信息
| |-- 练习记录
| |-- 设置
对比传统:传统需求设计需要产品、售前,业务三方对齐并收集整理需求,沟通往往要 1-2 天;AI 可以在数分钟内完成需求结构化,并把结果沉淀成文档。
三、设计阶段:先出原型图,再写代码
根据华为云码道智能体整理好的需求文档,我们让 “支持AI生图的大模型” 生成了一份原型图,这里大家可以自由选择熟悉的生图大模型即可,示例图如下所示:

相比直接从文字需求跳到写代码,先产出原型图的好处是:可以更直观地确认页面结构、模块划分和主要交互流程,减少后续开发中的返工。
基于这份原型图,我们进一步细化页面间的跳转关系、组件布局和功能入口,为后续编码提供清晰参照。
对比传统:传统流程中 UI 设计稿需要设计师产出、开发确认、产品验收,来回修改常有;AI 生成原型图把"设计稿 → 确认"这一步压缩到几乎实时。
四、编码阶段:AI 在云端仓库里"开工"
如何理解AI 在云端仓库里"开工"这句话呢,实际上指的就是,咱们在华为云码道智能体中选中某个开发仓库,智能体的所有修改都会基于这个仓库进行。仓库相当于智能体的工作区:它会读取项目结构、定位文件、写入修改,并通过 Git 追踪变更,这个咱们就可以实现AI在云端仓库里面打工。具体实现步骤如下所示,非常简单:
4.1 项目搭建:空白模板 → 推送到仓库
1、在我们的云端仓库Atomgit上先创建仓库,如下图所示:

2、创建完成后,会提示相关的git指令,指导开发者如何将本地创建的鸿蒙代码工程空模板推到Atomgit平台上的仓库

3、通常我们开发一个鸿蒙项目,会使用它的开发编辑器 DevEco Studio 先创建空白 HarmonyOS 项目模板,再在这个框架的基础上开发项目。

4、创建后的空项目工程模板如下所示

5、建完之后,把本地的项目推送到我们的创建的 pocketEnglish 仓库,作为后续开发的基础。执行相关的git指令,将创建的鸿蒙代码工程空模板推到Atomgit平台上创建的项目


完成这些基础的准备工作之后,接下来我们就可以基于云工作区来进行AI开发了。
4.2 云工作区模式:仓库就是 AI 的工作台
推送成功后,在智能体中选中这个仓库,智能体的所有修改都会基于这个仓库进行。仓库相当于智能体的工作区:它会读取项目结构、定位文件、写入修改,并通过 Git 追踪变更。

这种模式相当于把任务运行到了云工作空间,不用在本地反复切换环境,后续开发和审核都更顺畅。
4.3 模型选择:选了鸿蒙专项编码模型
模型提供了 deepseekv4-flash、deepseekv4-pro、glm-5.3-flash、GLM-5.2 等选项,其中 GLM-5.2-ArkTS-SPARK 是基于 GLM-5.2 增训了鸿蒙代码与开发知识的专项模型。我们选择了它来开发鸿蒙项目。

对比传统:传统开发代码保持到公司办公电脑,有时候出差,办公电脑不在身边;这里环境在云端托管,非常方便,不受地域限制。
4.4 制定开发计划:使用/plan命令
1、需求输入的第一步,我们选定 README 文件(使用@指令),输入提示词:
/plan 请根据这个英语学习APP的相关需求,帮我先制定一个开发计划

2、智能体会先探索整个项目工程文件,梳理目录结构和已有模块,再基于需求制定开发计划。这个过程很像开发评审会议:先对齐目标、评估影响范围、拆解任务,再安排实施顺序。

3、从执行结果可以看到,智能体不仅解读了当前项目代码,还给出了开发功能的规划进度,让后续编码目标更清晰。随后它还调用了一个 Skill 开始编写开发计划文档。
对比传统:传统开发评审靠开会、靠经验估算排期;AI 自动探索代码库后给出计划,评审结论有代码事实支撑。

4.5 AI开发编码
开发计划生成之后,智能体就开始按照开发计划进行自动编码了,如下图所示可以看到它正在有条不紊的开发每一个功能点,大概差不多等待半个小时的时间,就可以看到项目代码就开发完成了,效率还是非常高的。

4.6 提交 PR,生成的代码推送到云工作空间
1、等待AI开发完成后,向智能体下达提交指令,将生成的代码推送到云工作空间中,提示词乳如下所示:
请将当前分支的代码推送到 AtomGit,并基于当前修改创建一个 Pull Request。
目标分支使用 main。PR 标题和描述请准确概括本次修改内容。
请创建 PR,但不要合并;创建完成后返回 PR 地址和当前 PR 状态。

2、智能体自动完成分支推送和 PR 创建,随后可以在项目合并请求中看到本次修改。

对比传统:传统开发提交 PR 前需要开发者自查、跑 lint、写提交信息;AI 一步完成"推送 + PR + 标题描述"。
五、审查与修复:报错也能"自动修"
5.1 第一轮:语法检查
PR 创建后,我们让智能体当一回测试,看看这个AI生成的代码质量如何,有没有什么语法问题,提示词如下所示:
请检查一下当前项目修改 有没有语法问题

智能体将代码扫描了一下,最后按照严重大小给我们整理出了几类问题并进行了自动修复,问题点和修复建议如下图所示:

5.2 报错反馈:真实踩坑
等待第一轮修复完成后,我拉取最新代码,运行项目后提示仍编译报错。这是测评中最有价值的一段——我们直接将收集的错误原样反馈给智能体:

反馈给智能体的提示词如下所示:
> > hvigor ERROR: Failed :entry:default@PreviewArkTS...
> hvigor ERROR: 10605008 ArkTS Compiler Error
Error Message: Use explicit types instead of "any", "unknown" (arkts-no-any-unknown) At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/common/utils/AudioPlayerUtil.ets:20:13
10505001 ArkTS Compiler Error
Error Message: Argument of type 'ValueType' is not assignable to parameter of type 'string'.
Type 'number' is not assignable to type 'string'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/common/utils/DataUtils.ets:26:39
10505001 ArkTS Compiler Error
Error Message: Argument of type 'ValueType' is not assignable to parameter of type 'string'.
Type 'number' is not assignable to type 'string'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/common/utils/DataUtils.ets:50:39
10505001 ArkTS Compiler Error
Error Message: Argument of type 'ValueType' is not assignable to parameter of type 'string'.
Type 'number' is not assignable to type 'string'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/common/utils/DataUtils.ets:75:21
10505001 ArkTS Compiler Error
Error Message: No overload matches this call.
Overload 1 of 3, '(value: RotateOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions'.
Overload 2 of 3, '(options: RotateOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions'.
Overload 3 of 3, '(options: RotateOptions | RotateAngleOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions | RotateAngleOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions | RotateAngleOptions'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/components/WordCard.ets:79:17
10505001 ArkTS Compiler Error
Error Message: No overload matches this call.
Overload 1 of 3, '(value: RotateOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions'.
Overload 2 of 3, '(options: RotateOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions'.
Overload 3 of 3, '(options: RotateOptions | RotateAngleOptions): ColumnAttribute', gave the following error.
Argument of type '{ rotateY: number; }' is not assignable to parameter of type 'RotateOptions | RotateAngleOptions'.
Object literal may only specify known properties, and 'rotateY' does not exist in type 'RotateOptions | RotateAngleOptions'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/components/WordCard.ets:114:17
10505001 ArkTS Compiler Error
Error Message: Property 'encodeURIComponent' does not exist on type 'typeof util'. At File: D:/HarmonyOS/WorkSpace/PocketEnglish/entry/src/main/ets/common/utils/AudioPlayerUtil.ets:20:32
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.
> hvigor ERROR: BUILD FAILED in 7 s 316 ms
18 tasks in total: 7 executed, 11 up-to-date
项目运行后报错了,请帮我修复一下
这些错误非常有代表性:
| 错误类型 | 原因 | 对应传统开发场景 |
|---|---|---|
arkts-no-any-unknown | ArkTS 不允许 any/unknown,需显式类型 | 类型规范审查 |
ValueType → string 类型不匹配 | 工具函数参数类型问题 | 编译期类型检查 |
rotateY 不存在于 RotateOptions | HarmonyOS 旋转 API 用法不对 | 框架 API 使用错误 |
encodeURIComponent 不存在于 util | 引错了 API 来源(应为全局/其他模块) | 依赖与 API 引用错误 |
5.3 自动修复:一次完成
把这些错误反馈给智能体后,它一次性完成了修复,智能体修复的记录如下图所示:

我再次编译项目,应用直接成功的在鸿蒙测试手机上运行起来,界面效果也基本还原,开发效率令人惊讶,大概只需要一两个小时就能完成一个鸿蒙APP的开发,而且问题修复也只需要两轮,打包成功编辑器日志截图如下所示:

对比传统:传统开发中这四类问题分别对应"代码规范 review、类型检查、框架 API 学习、依赖引用排查",开发者在真实项目里逐个定位通常需要几小时;AI 在拿到报错后可直接定位文件与行号进行修复。
六、测试验收阶段:人只做最后把关
编码和修复完成后,进入测试验收。这一环节人的价值最明显:AI 负责"把事做对",人负责"确认做的是对的事"。产品经理(我)需要逐一验收功能是否符合需求文档——功能模块是否开放完成、卡片翻转动画是否流畅、发音是否正常、分类筛选是否正确、学习进度统计是否准确。最终的真机应用效果如下所示:
七、华为云码道智能体AI开发 vs 传统开发流程,到底强在哪?
把这次实践放进"需求 → 评审 → 编码 → 修复"四个环节对比:
| 环节 | 传统开发 | 华为云码道智能体实践 | AI 带来的优势 |
|---|---|---|---|
| 需求 | 产品写 PRD,反复对齐 | 需求文档直接输入,AI 自动结构化成开发计划 | 需求到计划几乎零等待 |
| 评审 | 开会评审,评估影响范围、排期 | AI 探索代码库后自动输出计划,调用 Skill 沉淀文档 | 评审有代码事实支撑,省去大量会议 |
| 编码 | 手动搭环境、逐行写代码、自己提 PR | 云端仓库工作区 + 专项模型自动编码 + 自动创建 PR | 环境零配置,编码效率数量级提升 |
| 修复 | 定位报错、查文档、改代码、回归 | 报错原样反馈,AI 定位文件并一次性修复 | 四类错误一次修完,回归周期大幅缩短 |
几点真实的感受:
- "产品经理 + 验收员"模式可行:需求描述得越清晰,AI 交付质量越高;人的价值从"写代码"转移到"定标准、验结果"。
- 报错反馈是最高效的交互方式:直接把编译错误原样丢给智能体,比用自然语言描述问题更精准、修复更快。
- 专项模型值得选:GLM-5.2-ArkTS-SPARK 这类增训鸿蒙知识的模型,在框架 API 使用上明显少踩坑。
- 云端工作区省心:仓库即工作区,环境托管。
八、踩过的坑与使用建议
- 坑 1:ArkTS 比 TypeScript 严格得多——不允许 any/unknown,API 引用也不同。这提醒我们:用 AI 生成鸿蒙代码时,最好明确告知"目标语言是 ArkTS"。
- 坑 2:框架 API 差异——
rotateY不在RotateOptions里、encodeURIComponent不在util里,这类问题靠"报错 → 反馈 → 修复"闭环解决最高效。 - 建议 1:用好 @ 命令——可以选中仓库中的具体文件,方便地修改指定文件。
- 建议 2:PR 流程别省——让 AI 走完整的"推送 + 创建 PR + 状态返回"流程,保证每次变更可追踪、可回滚。
- 建议 3:人机分工要明确——AI 负责执行,人负责定义"什么算完成",最后一道验收必须由人来把关。
九、总结
这次测评最直观的结论是:AI 辅助编程不是"替代开发者",而是把开发者从重复劳动中解放出来。当需求、评审、编码、修复都能交给智能体时,人的角色升级为产品的定义者和质量的守门员——这或许才是 AI 编程时代的真实工作方式。
回顾整个测评,华为云码道智能体给我留下的最深印象,是它把"从需求到上线"这条链路真正打通了:
- 上手门槛极低:无需本地搭建环境,登录 AtomGit 工作台即可使用,仓库即工作区,环境由云端托管,出差在外也能随时继续开发;
- 需求理解能力强:输入原始需求后,它能自动完成需求拆解、结构化并沉淀成开发计划,把传统需要 1-2 天的需求对齐压缩到数分钟;
- 编码效率惊人:借助鸿蒙专项模型 GLM-5.2-ArkTS-SPARK,约半小时即可完成一个 App 的自动编码,并自动完成推送、创建 PR 的完整流程;
- 报错修复闭环高效:把编译错误原样反馈,它能直接定位到具体文件和行号,四类典型错误一次修完,回归周期大幅缩短;
- 全程可追踪、可回滚:所有变更都通过 Git 记录,每次修改都有据可查,配合 PR 流程,让 AI 开发既高效又可控。
可以说,华为云码道智能体的价值不只是"帮你写代码",而是把需求、评审、编码、修复这条完整链路实现了并且还支持云端、交给了 AI,让开发者把精力真正放在"定义产品、把控质量"上——这,才是它最打动我的地方。
代码仓库地址:https://atomgit.com/m0_61243965/pocketEnglish
更多推荐



所有评论(0)