先说结论,AI让一些程序员成了不太负责任的“产品经理”。
“不要添加额外的功能”、“你写的代码无法运行”、“我明明刚刚才和你说过...”、“你怎么又犯这个错误”、“你怎么听不懂啊”、“你还能不能解决问题”,是不是有点似曾相识,是不是你和 AI 说过的话,让 AI反反复复的修改,怎么也改不好。你是不是代码全部由 AI 来写,报错就发给 AI,直到改到对为止,甚至改一个字也都让 AI 去改,完全不看代码,发完prompt就开始玩手机,不报错就验证功能,没问题就继续下一个,像极了一个只关注结果,完全不关心过程不负责任的“产品经理”。慢慢的很多程序员都变成了,黑盒氛围编程,完全凭感觉。剖析原因,如果你带过团队,或者你当过产品经理,那你可能不太会遇到上述问题,因为你知道和人沟通,尤其是核对产品功能时需要尽可能的把前因后果讲清楚,更何况 AI。而程序员大多都是表情严肃、头戴耳机、手端咖啡,浑身散发着生人勿近我要闭关写代码的气息,别说产品经理了,AI 也得退避三舍。恰恰是这种习惯安静思考和写代码习惯,让一些经验丰富的程序员有时越缺乏耐心和沟通能力。太多的程序员都把已知的“潜规则”都当做 AI 也知道,草草的和 AI 说:“帮我生成个什么什么功能,需要哪些功能点”,完全没有说任何技术参数和具体要求,就像你半夜跟外卖小哥说 "放门口就行",结果他放在了消防栓后面,而你指的门口是 "密码锁门垫下面那个显眼的角落且千万别放猫看得见的地方否则会被调走且如果看到门缝没有灯光就发短信别敲门因为我妈睡了"。当你半夜摸黑找外卖,触发了全楼的火警警报,你终于明白:你说的 "门口",在你脑海里有精密的三维地图,而对骑手来说,那就是一个随机坐标点——它甚至不知道有猫有狗还有你妈。
使用 AI 编程的朋友,都应该使用“结构化表达”的方式去和 AI 沟通,你给他写prompt 就得像写法律条款一样严谨,那就能拿到一个好的结果。
什么是"结构化表达",首先你要告诉 AI:A、B、C 也得告诉他 A1、A2、A3、B1.... 且顺序不能错,可以想象一下,你是一个上千人厂子的领导,你开大会,说话是不是得先点题,再说第一点,然后是第二点....最终再补充一点,感觉是废话连篇,但是恰恰把 AI 所需的细节都表述清楚了(当然不要真的纯是废话)。
如果你不想每次开一个新对话时都重复的再说一遍,就要写一个类似 claude.md 的文档,你要把你对这个项目前端、后端、数据库等要求,事无巨细的写清楚,并且在每次写代码之前,都让他阅读一下这个 md。
有个网友提供的小技巧,你可以在 md 里写个要求:“每次生成完都要叫你老公”,如果他突然不叫你老公了,说明把 md 给遗忘了。
最后不要让 AI 一次性生成一大堆代码,然后一直玩着手机,有一种自己在不断干活的错觉。