这篇主要解决什么问题
让 ChatGPT “写个函数”对 snippet 有用,对真实代码库就崩了。这套流程能扩展到真有上下文、有测试、有多个文件的工作。
这篇适合谁看
把 ChatGPT 当主力 AI 编程助手的人(没接 Cursor / Claude Code),或者主助手不擅长的语言 / 框架要用 ChatGPT 兜底的人。
什么时候适合用
新项目原型、小工具脚本、学新库、隔离的函数 debug、给已有代码补测试。
什么时候不建议用
跨多个文件的重构、大型遗留代码库、需要直接改文件的场景(用 Cursor 或 Claude Code)。
具体步骤
- 一个任务一个对话,不要一个项目一个对话。话题混杂会让对话质量快速下降。
- 先粘已有代码,再说目标。顺序很关键——ChatGPT 锚定在它先看到的东西。
- 明确写约束:语言、版本、框架、能用 / 不能用的依赖、跑测试的命令。
- 让它先给计划再写代码:“列出你打算改哪些文件、为什么,先别写代码。”
- 小块小块出代码(一个函数、一个组件),不要整个文件。好审好改。
- 每块都问一句:“这段没处理哪些边界情况?“再让它补上。
- 本地跑过再接受。失败就把完整报错粘回去,让它给最小化的修法。
建议的操作流程
加一个日期解析工具:粘已有的 utils 文件 → 说 “新增 parseLooseDate(str),处理 X/Y/Z 格式,返回 Date 或 null” → 让它给计划 → 写函数 → 问边界 → 补测试 → 跑。
容易踩的坑
- 粘一份 2000 行文件丢上去问”找 bug”。ChatGPT 只会模式匹配,不会真的推理。
- 跳过”计划”那一步直接出代码,再反复 prompt 修一开始就设计错的东西。
- 不写框架版本——你用 hooks 它给你写 class component,或在 Python 3 项目里塞 Python 2 语法。
- 相信它自己写的单测——经常瞎编 API。一定要跑。
进阶技巧
- 碰到不熟的库,把那个库的 README 或 docs 粘给它,幻觉 API 的概率会大幅下降。
- debug 时把完整报错和堆栈都粘上,不要转述。
- 设 Custom Instructions:“写代码默认用 {你的语言 / 风格},先列前提假设。“省得每次重打。
可直接复制的 Prompt
语言:{lang} {version}
框架:{framework} {version}
文件上下文:
{粘代码}
目标:{一句话}
约束:{允许的库、性能、风格}
先列你打算做的修改和原因,等我确认再写代码。
FAQ
- ChatGPT 还是 Claude 写代码?: 聊天写代码两个都强,Claude 长上下文更稳。要 Agent 直接改文件用 Cursor 或 Claude Code。
- 为什么老编 API?: 它看不到你装的实际依赖版本。要么粘文档,要么 prompt 里写死版本。