
人机协同:AI编程高效落地指南
大模型的普及,让AI编程成为开发者日常开发的常用工具。和传统纯手动敲码、调试迭代的模式不同,AI编程的核心,是通过人机协作的方式,简化重复编码工作、提升开发效率,让工程落地更轻松。
但在实际使用中,很多人对AI编程的运用仅停留在基础层面:只会套用简单提示词、让AI批量生成代码,一味堆砌功能,却缺少规范的迭代逻辑、项目管控思维和工程化落地能力。这也导致很多AI生成的代码杂乱冗余、难以维护,项目容易失控,最终无法正常上线,没能真正发挥出AI的提效价值。
本文结合真实开发场景,整理了一套可落地的AI Coding方法论。从AI编程的底层认知、标准化开发流程、实用提示词技巧,到全场景实战方法与配套工具生态,循序渐进讲解人机协同开发的实操要点。帮助不同基础的从业者,摆脱碎片化的工具用法,建立规范、可控的AI开发习惯,解决AI编码乱、迭代难、落地难的问题,真正借助AI简化开发流程、高效完成工程项目落地。
第一章 原理篇:AI Coding底层认知
1.1 时代变革:告别传统编程开发模式
近年来,大模型技术飞速发展,其中应用最广泛的当属大语言模型(LLM)。除自然语言生成外,其最成功的落地实践是基于字符的代码生成,即AI Coding。它是一种全新的人机协作软件开发范式,利用AI编程大模型的能力,通过自然语言(提示词)与编程工具内置的智能体交互,辅助或自动化完成需求分析、架构设计、代码生成、解释与调试。AI coding的本质,不是“用AI辅助编程”,而是人不在亲自编码。
这一开发范式变革使开发者从亲手写代码转向"指挥官"角色,带来三大提升:
- 生产力跃升:单人指挥多Agent协作,模拟产品、设计、研发、测试、运维等角色,产出效率大幅提升
- 门槛降低:只需清晰表达能力,无需深究语言细节,即可完成应用开发
- 周期缩短:从想法到落地,传统一个月的开发量可压缩至一周甚至更短
2025年,是AI编程公认的元年。年初,随着各类编程工具全面普及,AI从"代码补全工具"升级为可执行任务的智能体;到年底,AI发展到多Agent协作,具备自主规划、执行、验证、迭代能力。特别是2025年下半年,各类大模型普遍支持百万级上下文,这意味着AI能够对完整项目代码进行理解与分析,保持长文档上下文,以及多轮对话深度记忆。与此同时,各类编程智能体也逐步具备了Plan规划、Skill技能、Rules规则、MCP等能力,使得个体也具备了产品打造能力。
AI编程智能体能够放大个体能力,这意味着软件开发能力的平权化,过去"有一个完美Idea,只差一个程序员"的情况可能一去不返。Idea从构思到落地,个体在各类设计、编程、云服务的AI加持下,可以完整构建从0到1的产品。这不是工具升级,而是分工重构。一人等效一个完整研发团队,是AI Coding最简洁的定义。但需要强调的是,AI只是高倍率放大个体能力,并不意味着完全没有开发经验的个体能玩转AI编程。具备AI编程开发的前提,是拥有软件的基本架构能力——了解软件如何运转。达到这个基础水平即可,也不会出现"我的网站做好了,网址是 http://localhost ,大家来帮我测试吧"这样的笑话。
1.2 AI编程的工作原理:从提示词到可运行代码
要真正用好 AI Coding,不能只把AI理解成“聊天机器人会写代码”。它背后有一套完整的工作机制:人用自然语言表达意图,AI 将意图转化为软件工程任务,再通过代码生成、工具调用、运行反馈和迭代修复,逐步逼近可运行系统。工作机制的连贯执行使得AI具备极速反馈、即时迭代、低试错成本的核心优势,这种低阻力、高反馈的开发体验,能够让开发者持续保持专注、沉浸式的创作状态,快速进入心理学中的「心流模式」。开发者无需被繁琐的语法、报错、环境配置干扰,全程聚焦产品思路、业务逻辑和创意落地,在轻松流畅的开发氛围中持续产出,因此被命名为Vibe Coding(氛围编程/直觉编程)。
一般而言,AI Coding的工作链路可以拆成五步:自然语言描述(提示词-> AI语义理解与任务拆解->代码库上下文读取与推理-> 工具调用与代码生成->运行反馈与迭代修复。这五步共同构成了 AI Coding 的底层原理。
第一步:自然语言需求输入
传统编程中,人需要把需求翻译成代码,而在AI 编程中,人首先把需求表达成自然语言。
例如:
我想做一个记账本应用,用户可以记录收入和支出,并查看本月统计图表。
这句话本身不是代码,但它包含了软件开发所需的关键信息:
- 产品类型:记账本应用;
- 用户动作:记录收入、记录支出;
- 数据对象:收入、支出、金额、时间、分类;
- 展示结果:本月统计图表;
- 隐含页面:录入页、列表页、统计页;
- 隐含逻辑:新增记录、保存数据、汇总金额、图表展示。
AI 的第一项能力,就是把自然语言里的模糊意图转化为可执行的开发任务。
第二步:语义理解与任务拆解
AI 并不是简单地“接一句话,吐一段代码”。它会根据提示词中的信息,推断出需求背后的软件结构。
例如,当你说:
做一个用户登录功能。
AI 会自动联想到:
- 需要登录页面;
- 需要账号和密码输入框;
- 需要表单校验;
- 需要登录按钮;
- 需要调用后端接口;
- 需要处理登录成功和失败;
- 需要保存登录状态;
- 可能需要 Token;
- 可能需要跳转到首页。
这就是大模型的语义理解能力。它不是只识别字面意思,而是根据大量代码、文档和软件项目经验,推断一个功能在工程上通常应该如何实现。但这也带来一个问题:AI 会主动补全,也会主动猜测。
如果你没有明确边界,它可能会替你做很多“自认为合理”的事情,例如:
- 自动新增依赖;
- 自动修改项目结构;
- 自动重构多个文件;
- 自动设计数据库;
- 自动添加你没要求的功能。
所以,AI 编程的关键不是让 AI 自由发挥,而是让人类通过提示词设定任务边界。
第三步:上下文读取与工程推理
AI Coding 与普通 DeepSeek 问答最大的区别在于:它不只是回答问题,而是可以读取项目上下文。在 Cursor、CodeX、Claude Code等 AI 编程工具中,AI 可以看到:
- 当前打开的文件;
- 项目目录结构;
- 相关代码片段;
- 依赖配置;
- 报错日志;
- Git diff;
- 终端输出;
- 测试结果;
- 用户选择的代码范围。
这使它具备了“工程推理”的能力。
例如你让 AI 修改一个按钮逻辑,它不只是生成一个新按钮,而是会尝试判断:
- 这个按钮在哪个组件里;
- 当前项目使用 React、Vue 还是原生 JS;
- 状态变量在哪里定义;
- 点击事件绑定在哪;
- 样式来自 CSS、Tailwind 还是组件库;
- 修改后是否影响其他页面。
这就是为什么 AI 编程工具比单纯把问题丢给聊天对话助手(如豆包、Deepseek网页版)更适合开发,因为真正的软件开发不是孤立代码片段,而是大量文件之间的上下文协同。
第四步:代码生成与工具调用
当 AI 理解需求和上下文后,就会进入代码生成阶段。
它可能生成:
- HTML / CSS 页面;
- React / Vue 组件;
- 后端接口;
- 数据库模型;
- SQL 迁移脚本;
- 测试用例;
- Dockerfile;
- 配置文件;
- 文档说明;
- 修复后的代码片段。
在更高级的 AI 编程智能体中,它还可以调用工具完成动作,例如:
- 创建文件;
- 修改文件;
- 运行命令;
- 安装依赖;
- 执行测试;
- 读取终端报错;
- 搜索项目代码;
- 调用外部 MCP 工具;
- 根据结果继续修复。
这意味着 AI 已经从“代码建议者”进化为“任务执行者”。过去的代码补全工具,只能在你写到一半时补几行。现在的 AI 编程智能体,可以根据一句需求,跨多个文件完成一个功能模块。
例如:
请新增一个订单列表页面,支持按状态筛选和按创建时间排序。
AI 可能会自动完成:
- 新建
OrderList.vue; - 添加路由;
- 编写筛选组件;
- 编写排序逻辑;
- 调用订单接口;
- 补充 mock 数据;
- 调整菜单;
- 生成基本样式。
但也正因为它能做得更多,所以更需要人类控制范围。否则它可能“一次改太多”,导致项目不可控。
第五步:运行反馈与迭代修复
AI 生成代码并不等于开发完成,真正有效的 AI Coding,一定包含运行反馈。
因为 AI 生成代码可能出现:
- 语法错误;
- 依赖缺失;
- 路径错误;
- 类型不匹配;
- 接口字段不一致;
- 样式错乱;
- 逻辑遗漏;
- 环境变量配置错误;
- 浏览器兼容问题;
- 后端跨域问题。
所以 AI 编程不是“一句话生成成品”,而是一个循环过程:提出需求->AI生成代码->运行项目->发现问题->报错信息给AI->AI修复代码->再次运行->审查验收
例如:
我运行 npm run dev 后报错如下:
Module not found: Can't resolve './components/Header'
请帮我分析原因,并给出最小修改方案。不要重构项目。
AI 会根据报错判断可能原因:
- 文件路径写错;
- 文件名大小写不一致;
- 组件没有导出;
- import 路径层级错误;
- 文件不存在。
然后给出修复方案。
因此,AI Coding 的本质不是“AI 一次性写对所有代码”,而是:人来持续提供反馈,AI 持续修正实现。
1.3 AI编程Agent的能力来源
AI 之所以能编程,主要来自四类能力:
1. 代码语料学习能力
大模型训练时学习了大量公开代码、技术文档、开源项目、问答资料和工程实践。因此它知道常见功能通常应该怎么写。
例如:
- 登录注册;
- 文件上传;
- 表格筛选;
- 支付流程;
- 数据库 CRUD;
- API 接口;
- 权限校验;
- Docker 部署;
- 自动化测试。
它不是像人一样理解代码世界,但它能根据大量模式,生成高度接近真实工程的代码。
2. 自然语言到代码的映射能力
AI 能把自然语言需求映射成代码结构。
例如:
用户点击按钮后,弹出确认框,确认后删除当前数据。
AI 可以转化为:
- 绑定点击事件;
- 显示确认弹窗;
- 获取当前数据 ID;
- 调用删除接口;
- 删除成功后刷新列表;
- 删除失败时显示错误提示。
这就是从“意图”到“实现”的映射。
3. 上下文补全能力
AI 不只根据当前一句话生成代码,还会结合上下文判断。例如你项目里已经使用 Element Plus,它就应该优先使用 Element Plus 的组件;如果项目里已经使用 Tailwind CSS,它就不应该突然写一套全新的 CSS 体系;如果现有接口统一返回 { code, data, message },它也应该保持同样格式。上下文越完整,AI 输出越稳定。这也是为什么百万级上下文、多文件读取、项目级索引会显著提升 AI 编程质量。
4. 工具调用与自动执行能力
新一代 AI 编程智能体不只是生成文本,还可以调用工具执行任务。
例如:
- 搜索代码;
- 编辑文件;
- 运行测试;
- 读取日志;
- 调用浏览器;
- 访问数据库;
- 使用 MCP 连接外部工具;
- 根据运行结果继续迭代。
这使 AI 从“会回答”变成“会做事”。未来 AI Coding 的关键演进方向,也正是从代码生成走向自主执行。
这里需要特别强调:AI 编程不是魔法。大模型生成代码的底层机制,本质上仍然是基于上下文进行概率预测。它会根据你的提示词、项目上下文和已有代码模式,预测“接下来最合理的代码是什么”。这带来两个结论:
第一,AI 可能犯错。它可能生成看似合理、实际不能运行的代码。
第二,AI 需要验证。代码是否正确,不取决于 AI 说得多自信,而取决于能不能运行、能不能通过测试、能不能满足需求。
所以,使用 AI 编程时必须建立一个基本认知:
AI 负责生成候选方案,人负责判断和验收。
这也是为什么 Git、测试、日志、运行反馈非常重要。它们是 AI 编程从“看起来对”走向“真的可用”的保障。
1.4 三种典型的AI开发范式
从“人来指挥AI完成开发”这一核心特征来说,依托AI Coding的范式可归纳为三类,它们是所以AI Coding实践的原点:
- 视觉原型范式。主要特点是通过调研分析,通过AI构建快速产品UI原型界面,快速验证想法,并于用户(或自己)打成共识。界面是用户直观感知纬度,也是最容易通过描述+参考的方式来让AI理解,因此从界面入手,先确定长什么样,再实践怎么实现,是最快切入AI编程的路径。
- 逻辑主导范式。其侧重于后端服务、数据处理、算法实现,核心是逻辑规则的清晰表达。人不需要写代码,但需要能够通过自然语言来描述清楚:输入是什么、输出是什么、数据怎么流转、经过哪些判断和处理。逻辑表达提示词越精确,AI实现还原度越高。
- 借鉴创新范式。人类的学习靠模仿,AI生成也可参照。提供一个界面截图、一个开源项目链接或一段代码,AI可以据此逆向还原、二次开发。通过将已有成果的作为沟通介质,大幅降低描述成本。
在AI Coding实践中,往往不是一种范式来主导,通常是三种范式灵活运用。
1.5 人的角色转变及人机职责分工
当 AI 能写代码之后,人并没有消失,而是职责上移。
传统开发中,人主要做:理解需求 → 写代码 → 调试 → 上线
AI Coding 中,人主要做:定义目标 → 拆分任务 → 设定边界 → 审查结果 → 验证上线
也就是说,人从“编码者”转向“指挥者”。
新的核心能力包括:
- 需求表达能力;
- 任务拆解能力;
- 软件结构理解能力;
- 审美判断能力;
- 逻辑校验能力;
- 风险识别能力;
- 测试验证能力;
- 迭代管理能力。
这也是为什么 AI Coding 并不等于“完全不需要技术常识”。你可以不亲自写每一行代码,但至少要知道软件由哪些部分组成,知道前端、后端、数据库、接口、部署之间大致如何协同,即基本架构能力。
那么在这种角色转变的情况下,人的核心价值发生转移,人机协同的职责可以拆解出分工边界:
| 纬度 | 人负责 | AI 负责 |
|---|---|---|
| 审美与体验 | 确定风格、交互感受、品牌调性 | 生成符合描述的界面代码 |
| 需求与取舍 | 拆解功能、判断优先级、做减法 | 理解需求并输出实现方案 |
| 逻辑定义 | 用自然语言描述业务规则 | 转化为准确可运行的代码逻辑 |
| 风险审核 | 识别安全漏洞、数据合规、边界异常 | 执行测试、暴露问题、给出建议 |
| 编码调试 | 不写代码 | 完整编写、调试、重构 |
| 部署运维 | 触发指令、确认配置 | 执行部署命令、日志分析 |
核心分工价值在于,人把控“做什么、做成什么样、为什么不能做”,而AI负责“怎么做,写出来,跑起来”。
第二章 流程篇:标准化落地开发法则
2.1 通用五步标准开发流程
一个软件产品的落地,通常经历需求调研分析、产品原型设计、高保真设计、架构/详细设计、代码构建、测试上线等阶段。AI Coding的整体思路与传统软件研发过程一致:
首先构思创意,汇集用户或自己的想法,抓住需求痛点、构建用户故事,明确产品核心目标与待解决的问题。在目标精准定位下,规划产品栏目、界面设计与用户交互原型,进行可视化交互验证,验证出的问题或产生的新想法,通过AI进行迭代更新,一步步的达到预期。随后通过人机交互方式进行代码生成、审查、测试,最后上线部署。从「一个想法」到「一个可用的产品」,演绎出最小落地单元的五步法:想法->原型->迭代->编码->调试->上线。
第一步:想法
用自然语言写下你要做什么。不需要技术术语,只需要回答三个问题:
- 这个产品给谁用?
- 解决什么问题?
- 最核心的一个或几个操作是什么?
举个例子:
我想做一个面向软件公司项目负责人使用的简单项目管理工具。它帮助项目经理、程序员、设计师等角色人员在一个界面上查看和管理所有任务进度、与客户沟通、项目预算与成本管控,并内置客服聊天工具,核心操作包括创建项目、项目任务管理、任务进度维护和查看客户需求与反馈。
第二步:原型
基于刚才的自然语言描述,让 AI 生成一个静态界面(HTML/CSS 即可),无需后台逻辑。此时的重点是对界面外观进行验证。如果觉得不满意,可以随时修改描述,让 AI 重新生成,直到你看到的界面效果与预期一致。此时可利用测试数据来模拟业务逻辑,确保功能正常运行。这里的目标是视觉确认,比如:
- 确认界面风格:颜色、排版、按钮样式等是否符合预期?
- 页面布局:功能入口是否清晰且易于理解?
第三步:迭代
在原型基础上逐轮提出修改,直到界面完全符合预期。每一轮只改一个地方,确认后再改下一个。切忌一次性提七八条需求——AI会乱,你也会乱。
- 例如第一轮告诉 AI 调整顶部导航栏的颜色;
- 等初步效果确认后,再告诉 AI 调整按钮大小或布局。
- 一轮一改、一轮一验,直到对外观100%满意为止。
第四步:编码
当原型界面确认后,就可以开始真写代码,由AI来为页面加入交互逻辑和后端服务。你需要做的是:描述清楚「点击这个按钮后发生什么」「数据从哪里来、存到哪里去」。
- 描述点击某个按钮后希望执行什么操作,比如将表单中的数据保存到数据库;
- 说明数据源来自哪里,需要存到何处;
- 让 AI 生成前端与后端的实现代码,如 React、Vue 前端和 Node.js、Python 等后台代码。
你的描述越精准,AI 就能更好地完成所需功能。此步也是消耗时间和精力最大的步骤,需要逐步交互、迭代。
第五步:调试上线
如果运行出错,直接将错误提示复制给 AI,请它尝试定位问题并提供修复方案。修复后,让 AI 生成部署命令或脚本。
- 也可请 AI 协助完成自动化测试与集成,让上线流程更加顺畅;
- 部署渠道可选择自有服务器、云服务或其他一键托管平台。
在完成所有测试和调试后,即可将项目正式上线。通过如上五个阶段,你就能较为轻松地从一个想法出发,快速构建并交付 AI 驱动的产品。
2.2 迭代铁律:三大风控心法
项目失控最常见的原因,并不是 AI 能力不足,而是需求改着改着就「改乱了」。尤其是在多轮迭代中,如果每次都让 AI 大范围修改,很容易出现:原本正常的功能被破坏、样式被覆盖、逻辑前后不一致、旧问题修好了新问题又出现。因此,和 AI 协作开发时,最重要的不是一次性让它写得多完整,而是要学会控制修改范围。基于「防失控」原则,可以总结出三条迭代铁律。
铁律一:找到-选中-单点修改
每次修改前,先定位问题所在。不要一上来就说:「这个页面有问题,帮我改一下。」更稳妥的做法是,让 AI 先帮你找到相关代码位置,确认它理解的是同一个问题后,再进行修改。
推荐流程是:
- 先让 AI 找到需要修改的文件、函数或组件;
- 将涉及到的文件、函数或者代码给到 AI ,并说明准备改哪里、为什么改;
- 修改完成后,立即运行或预览确认效果。
一次只改一个功能点。如果改了 A 影响到 B,也不要急着让 AI 一次性修完所有问题。先确保 A 正确,再把 B 作为一个单独问题处理。
正确提示词示例:
请先帮我定位「登录按钮点击后无反应」相关代码,不要修改。
找到后说明涉及哪些文件和函数,我确认后再让你改。
确认后再说:
只修改登录按钮点击事件这一处逻辑,其他代码保持不变。
铁律二:禁止全局重构
和 AI 协作时,最危险的指令之一就是:
重新写一遍。
整体优化一下。
帮我重构这个页面。
把代码整理得更优雅。
这些说法看似合理,实际风险很高。因为 AI 很可能会推倒重来,重新生成一套它认为更好的代码,但在这个过程中,之前已经调试好的细节、兼容逻辑、样式调整和临时修复,都可能被覆盖或丢失。尤其是在项目已经能跑起来之后,更要避免大范围重构。正确的做法是把需求缩小到明确范围,例如:
不要说:
帮我整体优化登录页面。
可以改成:
只修改 LoginPage 组件中的表单校验逻辑,其他 UI、接口请求和路由逻辑保持不变。
不要说:
这段代码太乱了,帮我重写。
可以改成:
只将 submitForm 函数拆成两个小函数:validateForm 和 sendLoginRequest。不要修改函数行为,不要改动其他代码。
也就是说,永远告诉 AI:改哪里、改什么、不许动哪里。
铁律三:Git 阶段性存档
每完成一个可运行状态,就要及时提交存版,就像我们在玩游戏打Boss前的存档。很多人使用 AI 写代码时,会一口气连续改几十轮,等到项目跑不起来时,已经不知道是哪一步改坏的。这时再让 AI 修,往往会陷入「越修越乱」的循环。所以,只要项目达到了一个阶段性可用状态,就应该立刻提交一次 Git。
比如:
- 完成首页布局后,提交一次;
- 完成登录页后,提交一次;
- 接通接口后,提交一次;
- 修复某个关键 bug 后,提交一次;
- 上线前,提交一次。
你不需要记 Git 命令,直接对 AI 说:
帮我提交代码,备注:完成登录页 UI。
或者:
当前项目可以正常运行,请帮我提交一次 Git,提交信息是:完成用户登录功能。
阶段性提交的好处是:一旦后面改坏了,可以随时回退到上一个可运行版本。这样你会更有安全感,也更敢让 AI 继续迭代。总结一下,和 AI 协作开发不是让它一次性把所有事情都做完,而是像指挥施工队一样,把任务拆小、边做边验、随时存档。守住上述三条铁律,AI 编程项目就不容易失控。
2.3 原型转商用系统的工程化改造
一个能跑起来的原型,距离一个真正可上线、可维护、可扩展的商用系统,中间还有一段不短的距离。原型 的目标是「验证想法」:能不能跑、页面能不能展示、核心流程能不能走通。商用系统的目标则是「稳定交付」:能不能长期运行、多人使用、数据安全、出现问题后能不能快速定位和修复。所以,当原型已经验证可行后,下一步不是继续堆功能,而是进行工程化改造,这通常需要跨过五道门槛。
第一步:架构设计
原型阶段的代码,常常是单文件或少量文件拼出来的「大泥球」:页面、接口、数据处理、业务逻辑混在一起。短期看能跑,长期看很难维护。而一个主流的商用系统通常包括下面几个结构:
- 前端:负责页面展示和用户交互;
- 后端:负责业务逻辑、接口处理和权限控制;
- 数据层:负责数据库访问、数据模型和持久化;
- 配置层:负责环境变量、密钥、第三方服务配置;
- 服务层:负责复杂业务规则的封装。
这一步可以让 AI 帮你做结构化拆分,但要注意,不要一上来就让它「全部重写」。更稳妥的方式是先让 AI 分析当前代码结构,再制定拆分方案。
推荐提示词:
请先分析我当前项目的代码结构,不要修改代码。
帮我指出哪些逻辑混在一起,并给出适合本系统的分层方案。
确认方案后再说:
请把当前代码按前后端分离架构拆分:前端采用Vue/React构建,UI框架使用ElementPlus/TailiwindCSS,后端使用SpringBoot架构,数据库采用MySQL,缓存适应Redis,前后端通过标准RESTful接口进行通信。
保持现有功能不变,不要新增功能。
第二步:数据建模
原型阶段的数据,可能只是临时变量、浏览器本地存储、Mock 数据,或者一个简单的 JSON 文件,这些方式适合验证流程,但不适合真实业务。商用系统需要规范的数据建模,至少要考虑:
- 每张表存什么;
- 每个字段是什么类型;
- 哪些字段不能为空;
- 哪些字段需要唯一约束;
- 哪些字段需要建立索引;
- 表与表之间是否存在关联关系;
- 数据删除是物理删除还是软删除;
- 是否需要记录创建时间、更新时间、操作者等审计字段。
例如,一个用户表不能只写:
json{
"name": "张三",
"password": "123456"
}
商用系统中,它可能需要变成:
idusernameemailpassword_hashrolestatuscreated_atupdated_atlast_login_at
同时还要考虑密码不能明文存储、邮箱是否唯一、账号是否禁用等问题。
可以让 AI 帮你完成数据建模:
请根据我的业务需求,设计数据库表结构。
要包含字段名、字段类型、是否必填、默认值、索引、唯一约束和表之间的关联关系。
进一步还可以让 AI 生成迁移脚本:
请基于以上表结构,生成 MySQL 的数据库迁移脚本。
包括建表语句、索引、外键约束和必要的初始数据。
第三步:自动化测试
原型阶段,测试通常靠手工点一点:打开页面、填表单、点按钮、看结果。这在早期没问题,但商用系统不能只靠手工测试。因为每一次功能修改,都可能影响之前已经正常的功能。没有测试保护,项目越改越不敢动。通常系统至少需要覆盖核心路径:
- 用户注册是否正常;
- 用户登录是否正常;
- 权限校验是否生效;
- 表单提交是否正确;
- 核心数据是否能新增、查询、修改、删除;
- 异常输入是否会被拦截;
- 接口返回是否符合预期。
可以让 AI 先生成测试计划:
请根据当前项目功能,列出最重要的自动化测试用例。
按优先级排序,先覆盖登录、权限和核心业务流程。
然后再让 AI 写测试代码:
请为用户登录功能生成自动化测试。
包括成功登录、密码错误、账号不存在、账号被禁用四种情况。
前端项目可以要求生成:
请使用 Playwright / Cypress 生成端到端测试,覆盖从登录到创建订单的完整流程。
后端项目可以要求生成:
请使用 Jest / Pytest 生成接口测试,覆盖用户注册、登录和权限校验。
自动化测试的意义不是让代码「看起来更专业」,而是给后续迭代加一层保险。每次修改后自动跑一遍测试,能快速发现改动是否破坏了旧功能。
第四步:容器部署
本地能跑,不代表服务器能跑。很多原型在自己电脑上运行正常,是因为本地已经装好了各种依赖:Node、JDK、数据库、环境变量、缓存服务、第三方 SDK……但换一台服务器,可能立刻报错。商用系统需要把运行环境固化下来。最常见的方式就是容器化部署。通过 Docker,可以把应用运行所需的环境、依赖和启动命令封装起来。通过 docker-compose,可以同时管理前端、后端、数据库、Redis、Nginx 等多个服务。
可以让 AI 帮你生成部署文件:
请根据我的项目结构,生成 Dockerfile。
要包含依赖安装、构建命令和启动命令。
如果项目包含多个服务,可以说:
请帮我生成 docker-compose.yml。
包含前端、后端、MysqlSQL、Redis 和 Nginx。
要配置服务之间的网络连接和环境变量。
同时,还要让 AI 给出部署步骤:
请给我一份从本地构建到服务器部署的完整命令清单。
包括构建镜像、启动容器、查看日志和停止服务。
容器化的目标是:让项目不依赖某一台电脑,而是在任何符合条件的服务器上都能稳定运行。
第五步:安全加固
原型往往只关心功能是否可用,不太考虑攻击场景。但商用系统一旦上线,就会面对真实用户、真实数据和真实风险。
安全加固至少要关注以下问题:
- SQL 注入:用户输入不能直接拼接进 SQL;
- XSS 攻击:页面展示用户输入时需要转义;
- CSRF 攻击:敏感操作需要防伪造请求;
- 权限绕过:不能只在前端判断权限,后端也必须校验;
- 密码安全:不能明文存储密码,需要哈希加盐;
- Token 安全:登录凭证需要过期时间和刷新机制;
- 输入校验:接口不能相信前端传来的任何数据;
- 文件上传:限制文件类型、大小和存储路径;
- 接口限流:防止暴力破解和恶意请求;
- 日志脱敏:不能在日志中记录密码、Token、身份证号等敏感信息。
可以明确要求 AI 做安全检查:
请对当前项目进行安全审查。
重点检查 SQL 注入、XSS、CSRF、权限绕过、密码明文存储和敏感信息泄露问题。
先列出风险点,不要直接修改代码。
确认后再逐项修复:
请先修复登录接口的输入校验和密码安全问题。
其他功能保持不变。
或者:
请为所有需要登录的接口加入权限检查。
确保未登录用户无法访问,普通用户不能访问管理员接口。
安全加固不要依赖一句「帮我变安全」。要把安全需求拆成明确动作:校验输入、限制权限、加密密码、保护 Token、过滤输出、隐藏敏感信息。
从 原型 到商用系统,本质上是从「能跑」走向「可靠」。原型 证明想法可行,工程化改造决定产品能不能上线。
第三章 提示词篇:AI指挥提示词体系
很多人用 AI 编程时,最大的问题不是 AI 不会写代码,而是自己不会下指令。如何把脑子里的模糊想法,变成 AI 能准确执行的指令是首要解决的问题。AI 编程质量不是单纯由模型决定,也由你的提示词质量和上下文质量决定。
比如你说:
帮我做一个登录页。
AI 确实会做,但它不知道你想要什么风格、用什么框架、是否需要接口、是否能新增依赖、哪些文件不能动。于是它只能凭经验发挥,结果往往是:代码生成了,但不是你想要的。真正高效的 AI 编程,不是「随便问一句」,而是像给工程师派任务一样,把背景、目标、边界、示例和约束说清楚。
3.1 CRISPE 结构化框架
CRISPE工程提示框架由工程师 Matt Nigh 于 2023 年提出,2024 年经微软研究院优化后成为业界标杆级 Prompt 设计范式。它可以帮助你把一个模糊性的需求拆成六个结构化的部分:角色、背景、任务、范围、参数、约束。
3.1.1 CRISPE 六要素
| 维度 | 含义 | 作用 | 示例 |
|---|---|---|---|
| C - Role | 角色 | 告诉 AI 以什么身份思考 | 你是一个资深前端工程师 |
| R - Background | 背景 | 告诉 AI 当前项目是什么 | 我在做一个记账本 APP |
| I - Task | 任务 | 明确要 AI 完成什么 | 帮我实现一个支出统计图表 |
| S - Style / Scope | 风格 / 范围 | 限定输出风格和修改范围 | 用 ECharts,只改 statistics.js 文件 |
| P - Parameter / Example | 参数 / 示例 | 提供数据格式、参考样例或输入输出 | 数据格式参考这个 JSON:{...} |
| E - Explicit Constraint | 显性约束 | 明确告诉 AI 不要做什么 | 不要改 CSS 样式,不要引入新依赖 |
3.1.2 万能句式模板
可以直接套用下面这个模板:
你是一个【角色】。
当前项目【背景】。
请帮我【任务】。
要求:【风格 / 范围】。
参考:【参数 / 示例】。
特别注意:【显性约束】。
例如:
你是一个资深前端工程师。
当前项目是一个记账本 APP,已经完成了收入和支出记录功能。
请帮我实现一个支出统计图表。
要求使用 ECharts,只修改 statistics.js 文件。
数据格式参考:
{ "category": "餐饮", "amount": 120, "date": "2025-01-01" }
特别注意:不要修改 CSS 样式,不要引入新的依赖,不要改动其他页面。
这类指令比「帮我做个统计图」有效得多。因为它不仅告诉 AI 要做什么,也告诉 AI 在哪做、怎么做、不能做什么。
3.1.3 好提示词的判断标准
一个好的提示词,至少要满足三个条件:
第一,AI 知道你是谁、项目是什么
如果没有背景,AI 就只能猜。比如「做一个表格」这句话过于宽泛,它不知道这是后台管理系统、财务系统,还是项目管理系统。
更好的说法是:
我正在做一个面向小微企业的进销存系统,现在需要在库存页面增加一个商品列表表格。
第二,AI 知道具体要交付什么
不要只说「优化一下」「完善一下」「高级一点」。这些词对人类也模糊,对 AI 更模糊。
更好的说法是:
请把商品列表表格增加三个功能:按商品名称搜索、按库存数量排序、库存低于 10 时显示红色提示。
第三,AI 知道不能碰哪里
很多项目被 AI 改乱,不是因为它不会写,而是因为它改得太多。所以一定要加边界:
只修改 GoodsTable.vue 组件,不要改接口,不要改路由,不要新增依赖。
边界越清楚,AI 越不容易越界。
3.2 四类高频万能提示词
下面整理四类最常用、最实战的提示词, 它们分别对应 AI 编程中最常见的四个场景:
- 从零开始做原型;
- 在已有项目中局部修改;
- 遇到报错后修复;
- 参考别人的项目进行仿制或重构。
类型一:零基础开局提示词
适用于:你还没有代码,只是有一个想法,想先看界面长什么样。
标准提示词
我完全不懂代码。
我想做一个【产品类型】,给【用户群体】使用。
核心功能只有三个:【功能 1】、【功能 2】、【功能 3】。
请你先给我生成一个可以点击查看的 HTML 页面。
暂时不要写后端,不要接数据库,只做静态界面。
风格要【简约 / 科技 / 可爱 / 商务】,配色用【主色 + 辅色】。
我先看看样子。
示例一:做一个记账本 APP
我完全不懂代码。
我想做一个个人记账本 APP,给大学生和上班族使用。
核心功能只有三个:记录收入支出、查看本月统计、设置预算提醒。
请你先给我生成一个可以点击查看的 HTML 页面。
暂时不要写后端,不要接数据库,只做静态界面。
风格要简约清爽,配色用浅蓝色和白色。
我先看看样子。
示例二:做一个 AI 简历修改工具
我完全不懂代码。
我想做一个 AI 简历修改工具,给正在找工作的应届生使用。
核心功能只有三个:上传简历、输入目标岗位、生成修改建议。
请你先给我生成一个可以点击查看的 HTML 页面。
暂时不要写后端,不要接数据库,只做静态界面。
风格要商务、专业、干净,配色用深蓝色和浅灰色。
我先看看样子。
使用提醒
零基础开局时,不要一上来就让 AI 写完整系统。
不要说:
帮我做一个完整的记账系统,包含前端、后端、数据库和上线部署。
这类需求太大,容易生成一堆你看不懂、跑不起来、也无法维护的代码。
更好的方式是:
先生成静态页面,我确认界面后,再逐步增加交互和后端。
类型二:局部修改提示词
适用于:项目已经能跑,但你想改某一个按钮、某一个函数、某一个组件、某一个页面。
标准提示词
当前项目已经跑通。
请只修改【文件名】中的【函数 / 组件名】。
把【当前行为】改成【期望行为】。
其他所有代码保持原样。
不要新增依赖,不要重构其他模块。
改完后告诉我改了哪些地方。
示例一:修改登录按钮逻辑
当前项目已经跑通。
请只修改 LoginPage.vue 中的 handleLogin 函数。
当前行为是:点击登录按钮后没有校验手机号格式。
期望行为是:如果手机号不是 11 位数字,就提示「请输入正确的手机号」。
其他所有代码保持原样。
不要新增依赖,不要重构其他模块。
改完后告诉我改了哪些地方。
示例二:修改列表排序
当前项目已经跑通。
请只修改 OrderList.js 中的 sortOrders 函数。
当前行为是:订单按照创建时间正序排列。
期望行为是:订单按照创建时间倒序排列,最新订单显示在最上面。
其他所有代码保持原样。
不要修改接口,不要修改样式,不要新增文件。
改完后告诉我改了哪些地方。
使用提醒
局部修改时,最重要的是控制范围。
不要说:
这个页面不太好用,帮我优化一下。
要改成:
只修改 ProductCard 组件中的按钮文案,把「购买」改成「立即下单」,其他不变。
越具体,越安全。
类型三:报错修复提示词
适用于:项目运行时报错、打包失败、页面空白、接口请求失败等情况。
标准提示词
我运行项目时遇到以下错误:
【粘贴完整报错信息或使用工具一键引入】请帮我分析原因,并给出可直接替换的代码或具体修改步骤。
不要让我全局重装依赖。
不要让我删除整个项目重新开始。
优先从配置、路径、代码写法和版本兼容角度排查。
如果需要我补充信息,请告诉我要提供哪个文件内容。
示例一:前端启动报错
我运行项目时遇到以下错误:
Module not found: Can't resolve './components/Header'请帮我分析原因,并给出可直接替换的代码或具体修改步骤。
不要让我全局重装依赖。
不要让我删除整个项目重新开始。
优先从路径、文件名大小写、import 写法角度排查。
如果需要我补充信息,请告诉我要提供哪个文件内容。
示例二:后端接口报错
我运行项目时遇到以下错误:
TypeError: Cannot read properties of undefined (reading 'id')请帮我分析原因,并给出可直接替换的代码。
不要让我全局重装依赖。
优先从请求参数、用户登录状态、对象判空和接口返回值角度排查。
如果需要我补充信息,请告诉我要提供哪个文件内容。
使用提醒
报错修复时,一定要粘贴完整错误信息。
不要只说:
报错了,帮我看看。
更好的方式是:
- 粘贴终端完整报错;
- 粘贴浏览器控制台报错;
- 说明你刚刚做了什么操作;
- 告诉 AI 项目使用的技术栈;
- 如果有截图,也一起提供。
例如:
我刚刚修改了登录页面,重新运行 npm run dev 后报错。技术栈是 Vue3 + Vite。下面是终端完整报错:……
这样 AI 才能更快定位问题。
类型四:仿制重构提示词
适用于:你看到一个开源项目、网站、截图或产品界面,想借鉴它的布局、风格或交互,但不想直接复制代码。
标准提示词
我参考了【开源项目 / 截图 / 网页链接】。
请按照它的【布局方式 / 交互逻辑 / 视觉风格】,基于我的现有技术栈【框架名称】,生成一个独立的【页面 / 组件】。
不要复制原项目代码,不要复制原项目依赖。
只借鉴【具体维度】。
输出代码要能直接放进我的项目中使用。
示例一:参考某个 SaaS 官网首页
我参考了一个 SaaS 官网首页截图。
请按照它的首屏布局方式,基于我的现有技术栈 React + Tailwind CSS,生成一个独立的 HomePage 组件。
不要复制原网站代码,不要引入新的 UI 库。
只借鉴它的结构:顶部导航、左侧标题文案、右侧产品截图、底部客户 Logo 区。
视觉风格保持简约科技感。
输出代码要能直接放进我的项目中使用。
示例二:参考开源后台系统的侧边栏
我参考了一个开源后台管理系统。
请按照它的侧边栏交互逻辑,基于我的现有技术栈 Vue3 + Element Plus,生成一个独立的 Sidebar 组件。
不要复制原项目代码,不要复制原项目依赖。
只借鉴它的交互方式:支持菜单展开收起、当前菜单高亮、二级菜单缩进显示。
其他页面不要修改。
使用提醒
仿制不是照搬。你要告诉 AI 具体借鉴什么:
- 借鉴布局;
- 借鉴配色;
- 借鉴交互;
- 借鉴信息层级;
- 借鉴组件组织方式。
不要说:
做一个和这个网站一模一样的。
更好的说法是:
借鉴这个网站的首页结构和视觉氛围,但文案、颜色、组件代码都重新生成,不复制原始代码。
这样既更清晰,也更安全。
3.3 实操准则:三条高效使用细则
掌握模板之后,还需要掌握使用习惯。同样的提示词,不同的提问方式,效果差别很大。以下三条准则,是和 AI 协作编程时最重要的基本功。
准则一:单次单一需求
一次对话只说一件事。不要在一条消息里同时提出七八个需求:
帮我改按钮颜色,加一个表单,修一下登录报错,再优化一下首页,还要接入数据库,顺便部署上线。
这种指令看起来效率高,实际最容易失控。AI 可能做了其中几件,漏掉几件,甚至为了完成新需求,把原来正常的代码改坏。正确做法是拆开:
第一轮:
请把登录按钮颜色从蓝色改成绿色,其他不变。
确认无误后,第二轮:
请在登录页增加一个手机号输入框,其他不变。
再确认后,第三轮:
请为手机号输入框增加 11 位数字校验。
单次单一需求的好处是:每一轮都知道改了什么,出了问题也容易回退。
准则二:边界约束先行
在提需求之前,先说「不要做什么」。AI 很擅长主动补全,但这也是风险来源。你只想改一个按钮,它可能顺手改了页面结构;你只想修一个函数,它可能顺手重构了整个文件;你只想改样式,它可能顺手引入一个新的 UI 库。所以,在需求里要提前加边界。
常用边界包括:
- 不要改
package.json; - 不要新增依赖;
- 不要修改数据库结构;
- 不要新增文件;
- 不要修改接口路径;
- 不要改 CSS;
- 不要改路由;
- 不要重构其他模块;
- 只修改指定文件;
- 只修改指定函数;
- 保持现有功能不变。
示例:
当前项目已经跑通。
请只修改 UserList.vue 文件。
不要改 package.json,不要新增依赖,不要修改接口,不要改路由。
只把用户列表增加一个按姓名搜索的输入框。
边界越清楚,AI 越不容易越界。
准则三:附参考样例
人类指着图说话最快,AI 也是一样。如果你只是说:
页面要高级一点。
AI 很难准确理解你要的「高级」是什么。但如果你给一张截图,或者给一个参考链接,再说明你喜欢哪里,效果会好很多。
常见参考材料包括:
- 页面截图;
- 竞品链接;
- 开源项目地址;
- JSON 数据样例;
- 接口返回示例;
- 旧版本代码;
- 设计稿;
- 错误日志;
- 数据库表结构;
- 你喜欢或不喜欢的示例。
例如:
请参考这张截图的布局:顶部是导航栏,中间左侧是标题和按钮,右侧是一张产品图。
但不要照抄颜色,我希望主色改成紫色。
或者:
接口返回数据格式如下,请根据这个 JSON 渲染列表:
json{ "items": [ { "id": 1, "name": "商品A", "price": 99, "stock": 20 } ] }
「像这样」三个字,往往胜过一百句抽象描述。但要注意,给参考时不要只说「照这个做」,而要明确:参考什么,不参考什么。
3.4 常用提示词速查表
为了方便实际使用,可以把下面这些句子保存下来,作为日常 AI 编程的快捷提示词。
- 需求澄清
我想做一个【产品】,但需求还不清楚。
请你用产品经理的方式,向我提 10 个关键问题,帮助我明确用户、场景、核心功能和优先级。
- 原型生成
请根据以下需求生成一个静态 HTML 原型页面。
只需要 HTML + CSS,不要写后端,不要接数据库。
页面要能直接在浏览器打开预览。
- 页面美化
请只优化当前页面的视觉样式。
不要修改功能逻辑,不要修改接口,不要新增依赖。
风格方向是【简约 / 商务 / 科技 / 可爱】。
- 代码解释
我看不懂下面这段代码。
请用零基础也能听懂的方式解释它的作用。
按「整体功能—关键变量—执行流程—可能风险」四部分说明。
- 接口开发
请帮我实现一个【接口名称】接口。
请求方法是【GET / POST / PUT / DELETE】。
请求参数是【参数列表】。
返回格式参考【JSON 示例】。
请加入必要的输入校验和错误处理。
- 数据库设计
请根据以下业务需求设计数据库表结构。
要包含字段名、字段类型、是否必填、默认值、索引、唯一约束和表关系。
同时生成建表 SQL。
- Bug 修复
我遇到了以下报错。
请先分析可能原因,不要直接改代码。
然后给出最小修改方案,要求只修改必要文件。
- 测试生成
请为【功能名称】生成自动化测试用例。
覆盖正常情况、异常情况和边界情况。
使用当前项目已有的测试框架,不要新增依赖。
- 部署指导
当前项目已经可以本地运行。
请帮我生成部署方案。
包括环境要求、构建命令、启动命令、环境变量配置和常见报错排查。
- 安全检查
请对当前代码做一次安全检查。
重点检查输入校验、权限控制、SQL 注入、XSS、CSRF、密码存储和敏感信息泄露。
先列出风险点,不要直接修改代码。
第四章 实战篇:人群适配与实践打法
前面几章讲的是方法论、流程和提示词。但真正落地时,不同人群的使用方式并不一样。零基础的人,不应该一上来学习代码架构;工程师,也不应该还把 AI 当成一个简单的代码补全工具;产品和设计,更不应该只停留在「让 AI 写文案」层面。AI 编程的关键,不是所有人都用同一种方式,而是根据自己的背景,找到最适合的打法。
4.1 人群分层落地
不同人群使用 AI 编程,核心策略完全不同。可以简单分成三类:
- 零基础非技术人群;
- 技术转指挥人群;
- 产品/设计人群。
4.1.1 零基础非技术人群:产品、运营、创业者
核心策略:极简开发链路。对零基础用户来说,最重要的不是「学会写代码」,而是学会用自然语言把需求说清楚。不需要理解变量、函数、接口、数据库这些技术概念。只需要围绕三个句式来驱动 AI:
我要一个像 XXX 一样的东西。
这里改成 YYY 的样子。
点击这个按钮后,发生 ZZZ。
也就是说,零基础用户的开发路径不是「先学编程,再做产品」,而是:
先用自然语言描述 → 让 AI 生成界面 → 逐步修改 → 加入简单逻辑 → 部署给别人用。
这个过程更像是在「指挥搭建」,而不是亲自「写代码」。
真实案例:3 天做出内部工单管理系统
一位完全不懂编程语言的运营人员,用 AI Coding 的方式,在 3 天内完成了一个内部工单管理系统。
他的目标很简单:
团队里每天有大量临时需求,靠微信群沟通容易遗漏。
希望做一个简单系统,让同事提交需求、运营分配负责人、最后标记完成状态。
整个过程如下。
第一天:用截图启动原型
他给 AI 看了一张飞书审批页面的截图,然后说:
我想做一个类似飞书审批的内部工单系统。
左侧是工单列表,右侧是工单详情。
工单详情里有标题、提交人、优先级、截止时间、处理状态和备注。
先不要写后端,只生成一个可以预览的 HTML 页面。
AI 生成了第一个静态页面。
他不需要看懂代码,只需要看界面是否符合预期。
第二天:逐轮修改字段和流程
他开始按照实际业务修改:
第一轮:
把「审批人」改成「负责人」。
第二轮:
增加一个「需求类型」字段,选项包括:设计、文案、活动、数据、其他。
第三轮:
状态流转改成:待处理、处理中、待确认、已完成、已驳回。
第四轮:
在工单详情底部增加一个评论区,用于记录处理过程。
每一轮只改一个地方,所以即使不懂代码,也不会把项目改乱。
第三天:生成共享链接
界面和流程确认后,他让 AI 加入简单的数据保存逻辑,并生成可部署版本:
请让这个工单系统的数据可以保存在浏览器本地。
支持新增工单、修改状态、添加评论。
然后告诉我如何生成一个团队可以访问的链接。
最后,他通过托管平台生成了一个内部共享链接,团队成员可以直接使用。这个系统不一定完美,但它解决了真实问题。这就是零基础人群使用 AI 编程的核心价值:先做出一个可用工具,而不是先成为程序员。