从手写代码到指挥 AI:一套能落地的 AI 辅助开发工作流

举报
yd_235984788 发表于 2026/11/06 09:55:32 2026/11/06
【摘要】 AI 能生成代码,不等于能交付功能。本文拆解一套在真实项目中跑通的 AI 辅助开发工作流:五段式任务分工、三层提示词结构、三个高收益场景、四条必须由人守住的底线,以及三个可量化的收益指标。含可复用提示词模板与代码示例。

写在前面

过去两年,"AI 写代码"从演示视频走进了日常开发。但真正把它用起来的人会发现一个尴尬的事实:能生成代码不等于能交付功能。AI 给出的第一个版本往往看起来很美,跑起来全是坑——接口签名对不上、边界条件缺失、依赖版本冲突。

这篇文章不复述"AI 有多强",而是把我实际项目中跑通的一套工作流拆开讲:怎么分工、怎么给上下文、怎么验收,以及哪些环节不要交给 AI。全文约 2500 字,含可复用的提示词模板与代码示例。

一、先想清楚:AI 该站在流水线的哪个位置

我踩过的第一个坑,是把 AI 当成"更快的打字员"——把需求丢过去,等它吐出一个完整模块。结果是返工率极高。

后来我把开发流程拆成五段,明确每段 AI 的参与度:

阶段 AI 参与度 人的职责
需求澄清 低 判断真伪需求、拆解边界
方案设计 中 定架构、定取舍,AI 做方案枚举
编码实现 高 给约束、定验收标准
测试验证 高 设计用例,AI 补覆盖率
上线运维 低 风险判断、灰度策略

一个经验结论:越是确定性高、边界清晰的任务,AI 收益越大。写一个 CRC32 校验函数,AI 几秒钟给对;设计"订单超时关单"的分布式方案,AI 给的东西必须人工重写。判断标准很简单——这件事能不能用一段话把输入、输出、约束讲清楚。能,交给 AI;不能,先自己把话说清楚。

二、给上下文的三层结构

AI 输出质量的差异,80% 来自上下文质量。我现在固定用三层结构组织提示词:

第一层:角色与边界。明确它在哪个代码库里工作,遵循什么规范。

第二层:输入与约束。精确到不可再降:语言版本、框架版本、已有函数签名、不允许引入的依赖。

第三层:验收标准。这一层最容易被忽略,却最能提升一次通过率——直接告诉它"什么样的输出算合格",包括要覆盖哪些异常分支、要不要写单测、性能要求。

举个真实例子。我需要给一个前端项目加"分页数据缓存 + 失效"的 hook,最初的提示词只有一句"帮我写一个分页缓存 hook",产出的东西带了一堆用不上的配置项。改成三层结构后:

【角色】你是资深 React + TypeScript 工程师,维护一个使用 React 18、SWR、
       不引入新依赖的中后台项目。

【任务】实现 usePagedCache<T>(key, fetcher, options),满足:
1. 同一 key 的相邻页数据共享缓存,TTL 默认 60s,可配置;
2. 提供 invalidate(key) 与 invalidateAll();
3. 并发请求同一页时只发一次真实请求(去重);
4. 只使用 React 18 内置能力与项目已有依赖;
5. 不修改现有文件,新增文件放 src/hooks/。

【验收】
- 输出完整 TS 源码 + 3 个 Vitest 用例:命中缓存、TTL 过期后重新请求、
  并发去重各 1 个;
- 不使用 any;
- 代码通过 tsc --noEmit。

一次通过率从"基本不能用"变成"改两行就能合"。差别不在模型,在于我把验收标准写成了可执行的检查项。

三、三个高收益场景

场景 1:把存量代码"读薄"

接手老项目最难的不是写新代码,是理解旧代码。我习惯让 AI 做结构化摘要,而不是直接问"这段代码干什么":

读 utils/request.ts,输出:
1. 模块职责(一句话);
2. 对外暴露的 API 列表:名称、入参类型、返回值、副作用;
3. 所有错误分支及其处理方式(表格);
4. 三处最可疑的实现(说明理由,不要改代码)。

"列出所有错误分支"和"指出可疑实现"这两句,能把一个 800 行的工具文件压缩成半页可读文档。人读这半页只要两分钟,读原文要半小时。

场景 2:测试用例批量补齐

单测是 AI 收益最稳定的地方——因为验证是自动化的,写错了测试会红。我的做法是先让 AI 输出用例清单,人工挑过之后再让它写代码。跳过清单直接写,经常得到一堆"测了但没测到点上"的用例。

场景 3:跨语言、跨栈的胶水代码

Shell 脚本、Nginx 配置、CI 流水线 YAML、正则表达式——这些"一年写三次、每次都要查文档"的东西,是 AI 的理想战场。前提是让它解释每一行在做什么,因为这类配置的错误往往在某个隐蔽的默认值上。

四、必须由人守住的四条线

这部分比前面所有内容都重要。

第一条:安全与合规。代码、日志、配置里可能带密钥、内网地址、真实用户数据。任何情况下不要把生产数据粘进对话。项目里该有 .aiignore 或等价机制,把敏感目录排除掉。

第二条:依赖与许可证。AI 有时会"顺手"引入一个包,或写出一段来源可疑的实现。所有新增依赖必须人工过一遍版本、维护状态和许可证。

第三条:并发的正确性。AI 写的并发代码"看起来对"的比例很高,实际对的比例不高。锁粒度、竞态、幂等性这几处,必须自己逐行读。

第四条:性能敏感路径。排序、循环内的 IO、大数据量渲染——这些地方 AI 的默认实现通常是"能跑",不是"能扛"。

一句话总结:AI 可以写代码,但不能替你承担后果。提交按钮按下去的那一刻,责任人是人。

五、怎么度量收益

不要用感觉判断,用三个可量化指标:

  1. 一次通过率:AI 产出到能编译通过、跑通主流程的比例。低于 50% 说明上下文给得不够。
  2. 单位功能耗时:同类需求(比如"加一个列表页 + 筛选 + 分页")改动前后的实际工时。
  3. 返工率:上线后一周内因该功能产生的缺陷数。

我自己的实测:在业务 CRUD、测试补齐、脚本类任务上,端到端耗时下降约 40%–60%;在架构设计、复杂并发、性能调优上,AI 主要作用变成了"帮我列选项",耗时下降不到 10%。这个分布很稳定,可以用来判断一个任务值不值得交给 AI。

六、结语

AI 辅助开发的本质,不是让人少写代码,而是把人的精力从"语法实现"转移到"问题定义"和"质量把关"。写代码这件事正在贬值,把需求翻译成精确约束、把结果验证到可以上线的能力,正在升值。

所以真正该练的不是提示词的花活,是这两件事:把问题说清楚的能力,和判断输出对不对的能力。前者靠需求拆解的基本功,后者靠扎实的工程素养。这两样,AI 替不了。

如果这篇对你有帮助,欢迎在评论区聊聊你的 AI 工作流——尤其是那些"翻车"的部分,往往比成功经验更有信息量。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。