把需求说清楚,代码自己长出来:我的 CodeBuddy 提问心法
为什么同一个问题,别人问 AI 就能得到能跑的代码,我却得到一堆废话?差别往往在提问方式。
用 CodeBuddy 一个月后,我发现一个规律:它能不能给出好东西,一半取决于它的能力,另一半取决于我怎么问。同样一句「帮我做个进销存」,有人能拿到一个可以上线的系统,有人只能得到一段永远跑不起来的示例代码。
差别在哪?在我的提问里。这篇文章把我总结的方法讲给你听,就四个字:背景、目标、约束、示例。
一、背景(Context):先告诉它「你是谁、在什么环境」
AI 不是神仙,它不知道我在用 Windows 还是 Linux,不知道我装没装 Node.js,更不知道我的水平。如果我什么都不说,它只能按「最可能的默认情况」来回答——而默认情况,往往和我的情况对不上。
❌ 坏问法:帮我写个网页,能记账就行。
✅ 好问法:我在 Windows 上用 phpstudy,PHP 8.2 + MySQL,
我完全没写过代码,想要一个本地运行的记账网页,
数据存数据库里。请用最简单的方式给我。
短短几句话,它就知道:环境是 Windows + phpstudy、后端用 PHP、数据库用 MySQL、受众是零基础、本地运行。它给的方案就会是完全不同的一套——不会再丢给我「npm install」这种我根本跑不动的命令。
二、目标(Goal):说清楚「做成什么样算成功」
「帮我写个网页」这种需求,一万个网页都能算数。你得告诉它,这个网页给谁用、解决什么问题、什么程度算完成。
- 给谁用?——「我爸妈,他们 60 岁,字要大,按钮要少」
- 解决什么?——「记菜市场的进货,月底能算出这个月赚了多少」
- 什么算完成?——「能加一行、能改一行、能删一行,月底能看总数」
目标越具体,AI 的取舍就越合理。比如「字要大、按钮要少」,它就不会给我做一个花里胡哨的后台管理系统,而会做一个大字版、一个页面搞定的小工具。
三、约束(Constraint):划出「绝对不能踩的线」
约束是让 AI 少走弯路最快的方法。常用的约束有这么几类:
- 技术约束:「只能用 PHP,不要用框架」「不装任何额外软件」
- 范围约束:「先只做入库功能,别管出库和报表」
- 质量约束:「每次操作要确认,防止误删」「密码不能明文存」
- 风格约束:「界面像微信一样干净」「代码加中文注释」
我常用的一句话是:「如果有什么地方拿不准,先告诉我你的方案,再动手,不要自作主张。」 这一句能让它在关键岔路口先跟我商量,而不是跑偏了再返工。
四、示例(Example):给它一个「长这样的答案」
文字描述有时候说不清,这时候给示例最管用。示例可以是:
- 一张你手画的界面草图(截图给它看);
- 一段你想要的输入输出:「我输入『猪肉 3 斤 每斤 15 元』,页面要显示『合计 45 元』」;
- 一个你见过的软件的截图,说「要这个感觉」。这就是为什么 CodeBuddy 支持截图提问那么重要——一张图,胜过十行描述。
一个完整的例子:我是怎么问的
这是我要做进销存时,第一次完整提问的原话:
我:我想给我家的小卖部做一个进销存系统。
背景:我在 Windows 上用 phpstudy,装了 PHP 8.2 和 MySQL,
我基本不会写代码,但会用浏览器。
目标:能录入商品和进货,卖货时扣库存,月底能看利润。
约束:只用 PHP 原生代码,不要用框架;界面要简单清楚,
60 岁的人也能用;数据要安全,不能随便删。
示例:界面像超市收银小票那样,从上往下:商品名、数量、金额。
请先给我设计数据库表,再告诉我整个项目要建哪些文件,
一步一步来,每一步我验证完再继续。
结果它给了我三张表的设计(商品、进货、销售),一个清晰的建文件清单,并且真的做到「我验证一步,它再给下一步」。整个系统就这样一步一步被我「带」了出来。