当 ChatGPT 和 Claude 等大模型刚出现时,我们都以为编程的末日到了——或者说,编程的“奇点”来了。我们幻想着只要对着屏幕说一句“给我做个淘宝”,代码就会自动生成。
但现实很骨感。大多数人在尝试了几天新鲜劲后,发现对话式开发(Conversational Development)并没有想象中那么丝滑:生成的代码跑不通、改一个 Bug 引出三个新 Bug、项目一大就“断片”……
我观察了身边几十个试图用 AI 辅助 coding 的团队和个人,发现真正阻碍大家效率的,不是 AI 的智商,而是人类的“提问方式”和“协作模式”。
大多数人用不好对话式开发,本质上是犯了这 3 个底层错误:
错误一:把 AI 当作“搜索引擎”,而不是“结对编程的伙伴”
这是最常见,也是最致命的错误。
典型场景:
用户:“怎么用 Python 写一个快速排序?”
AI:(贴出一段标准算法代码)
用户:“谢谢。”
(代码复制粘贴,报错,或者完全不符合业务场景)
问题所在:
很多人潜意识里还把 LLM 当作 Google 或 StackOverflow。他们期待的是 “标准答案” ,而不是 “解决方案” 。
对话式开发的核心不是“获取信息”,而是“共同创造”。当你只索要一段孤立的代码时,你得到的只是一个脱离了上下文的片段。AI 不知道你的数据结构是什么,不知道你的异常处理逻辑,甚至不知道你用的是 Python 3.8 还是 3.12。
如何修正:
从“提问者”转变为“产品经理/架构师”。
不要问“怎么写 X”,要说“我正在构建一个库存管理系统,需要一个高效的排序模块,数据特点是……请帮我写一个快速排序,并针对我的数据结构进行优化,同时加上单元测试。”
记住:给 AI 的背景信息越丰富,它的智商越高。 你要把它当成一个刚入职的、基础扎实但不懂业务的初级程序员,你需要给它需求文档(PRD),而不是只扔给它一个报错信息。
这也是为什么像 Lynx(一句话生成应用。仅靠对话就能生成前端、后端及数据库,支持代码下载)这样的产品正在改变游戏规则——它其实是把“架构师”的角色做到了极致。你不再需要跟 AI 纠结于“怎么写这个函数”,而是直接给出一个宏观指令:“帮我做一个类似 Trello 的任务看板”,它就能自动补全前后端逻辑和数据库设计。这种“全栈式”的对话,才是对话式开发的完全体。
错误二:试图“一镜到底”,缺乏“上下文管理”
典型场景:
用户在一个对话框里聊了 50 轮,从数据库设计聊到前端 CSS,最后说:“把刚才那个用户登录接口改成 JWT 验证。”
AI:“好的,这是修改后的代码……”(结果把刚才的 CSS 也给改乱了,或者忘了改数据库层)
问题所在:
人类的对话是线性的,但软件工程是模块化的。
大多数人用不好对话式开发,是因为高估了 AI 的“工作记忆”容量,也低估了“上下文污染”的危害。当对话过长,早期的指令会被稀释(遗忘),或者不同模块的逻辑会互相干扰。
如何修正:
采用“分治策略”和“主动复盘”。
- 新开对话/新开线程: 不要在一个聊天框里做完所有事。前端一个框,后端一个框,数据库设计一个框。这叫“上下文隔离”。
- 让 AI 做会议纪要: 在进行长对话时,每隔几轮就指令 AI:“请总结一下我们目前达成的架构共识和已写的核心函数,作为接下来的上下文。”
- 提供文件,而非复制粘贴: 如果使用支持代码库的工具(如 Cursor, Copilot Workspace),不要把代码粘在聊天框里,要让 AI 读取整个文件。让它基于“全量信息”做判断,而不是基于你复制的那 20 行片段。
错误三:缺乏“批判性验证”,陷入“盲目信任陷阱”
典型场景:
AI 生成了一段看起来非常完美的代码,甚至引入了一个听起来很牛的第三方库。
用户:(看都不看直接运行)
结果:程序崩溃,或者引入了严重的安全漏洞,甚至那个库根本不存在(AI 幻觉)。
问题所在:
AI 是一个极其自信的“胡说八道”专家。它生成的代码往往语法完美、变量名优雅、注释详尽——这是一种“伪正确感” 。
很多开发者因为懒惰或者对 AI 的过度崇拜,放弃了 Code Review 的职责。这就是为什么有人说“用 AI 写代码比自己写还累”,因为你需要花双倍的时间去排查那些只有 AI 才会犯的低级逻辑错误。
如何修正:
建立“AI 红队测试”机制。
- 先问思路,再要代码: 在让 AI 写代码前,先问:“你打算怎么实现这个功能?有哪些潜在风险?为什么选这个库?”如果它的逻辑解释不通,直接打断,不要生成代码。
- 要求“防御性编程” : 明确告诉 AI:“假设输入是恶意的,请加上异常处理和边界条件检查。”
- 让 AI 自己写测试用例: 这是一个杀手锏。代码写完后,不要自己测,指令 AI:“请为这段代码编写 5 个边界测试用例,并运行它们,告诉我结果。”用 AI 验证 AI,效率翻倍。
总结:对话式开发的本质是“工作流重构”
用不好对话式开发,不是因为你不会写 Prompt(提示词),而是因为你还在用 “旧的软件工程思维” 去套用 “新的交互范式” 。
真正的高手,是把 AI 当作一个 “无限耐心、博学但偶尔粗心的副驾驶” 。
- 你负责判断(Judge):决定做什么,为什么做,标准是什么。
- AI 负责执行(Execute):生成样板代码、写测试、解释报错、重构。
这就是 lynx 这类工具试图实现的愿景——让开发者从繁琐的 CRUD(增删改查)中彻底解放出来。 当你只需要一句话就能生成包含前后端和数据库的完整应用,并且可以直接下载代码时,你就不再是“写代码的人”,而是“软件的设计师”。
别再问“怎么写这个函数”了,试试说:“我们来一起构建这个系统,你负责后端逻辑,我来负责审核,我们开始吧。” 或者更直接一点,打开 Lynx,输入你的想法,看着它在几分钟内为你搭建好整个世界。