最近在用Cursor和Claude帮我写一个内部工具的后端接口,发现一个很尴尬的问题:代码本身逻辑不复杂,但我花在改Prompt上的时间反而更多。比如让它“处理一下异常”,它就会给你塞一堆try-catch,连业务无关的日志都加上了;我说“简洁一点”,它又把必要的参数校验删了。来回改描述,比我自己手写还累。
用AI写代码三个月,感觉Prompt比代码本身还难调,正常吗?
全部回复
共 82 条太正常了,我刚开始用Copilot写脚本也这样,后来发现关键得把“边界”写死。比如异常处理,直接告诉它“只捕获特定异常,别加日志”,比抽象描述管用得多。另外,我觉得可以试着把代码的骨架先自己搭出来,让AI只填空,而不是让它从零生成整个函数,这样Prompt的容错率会高很多。消耗的心智确实不少,但调多了会形成肌肉记忆,现在我已经能一句话描述清楚需求了,前期投入也算值。
太正常了,这几乎是每个用AI写代码的人都会撞上的墙。我现在写Prompt的时间基本是写代码的两倍,尤其那种“稍微改一下”的需求,你描述得越具体,它反而越容易过度发挥。后来我学乖了,直接给它划边界,比如“只处理X和Y两种异常,其他情况直接抛给上层”,效果立刻好很多。你提到的“简洁一点”确实是个坑,因为AI对简洁的理解是“删代码”,而不是“保留必要逻辑”,所以我现在都会明确说“不要加日志,不要改参数校验,只改我指定的函数体”。说到底,AI更像一个特别较真但不懂业务的新同事,你得把需求拆成它听得懂的小步骤,这本身也是一种能力锻炼。不过话说回来,如果每个需求都要花这么多心思描述,确实会怀疑效率到底提升了没有,我目前只在写测试用例和修bug时觉得AI真香,生成业务代码还是自己上手快。
这太正常了,我现在写Prompt的时间基本是写代码的两倍。后来我发现一个笨办法:直接给它贴一段你想要的“标准答案”当例子,比用形容词描述高效得多,比如把“简洁”替换成具体的函数签名。另外别指望一次调好,把来回改Prompt当成重构代码,心态就稳了。
太正常了,我现在写复杂点的功能直接放弃“一句话需求”,改成先给它列清楚边界条件,比如哪些参数必须校验、哪些异常要吞掉,反而省事。你那种“处理一下”太开放了,模型只能自己脑补,来回拉扯是必然的。另外,有些小工具我真觉得手写更快,AI只适合用来补测试用例或者批量生成样板代码。
正常得很,prompt就是在给AI画边界,边界画不好它可不就自由发挥了。我现在都先让它写,再拿报错和需求去怼它,比一开始抠描述快多了。
太正常了,我现在写Prompt的时间基本是写代码的两倍。尤其是“简洁一点”这种词,AI的理解跟咱完全不在一个维度,它觉得删几行注释就算简洁了。后来我学乖了,直接给它贴个具体的坏味道例子,再说“照着这个风格改”,反而一次到位。你试试把需求描述成“不要XXX,只要XXX”,比形容词管用多了。
我跟你一模一样,现在最怕的就是改Prompt,改着改着就忘了原本要干嘛了。后来我干脆把异常处理、日志这些规则写在一个单独的规范文档里,每次对话开头先让它读一遍,再提需求,效果比在Prompt里反复强调好得多,你也试试。
正常,我甚至觉得这玩意儿比跟人对接需求还累,人至少能猜到你想要啥,AI是真字面理解。你那个“处理一下异常”的痛点我太懂了,我现在都直接写“只catch业务异常,其他抛出去,别加日志”,描述得跟代码规范似的,它才老实。
这个思路不错,收藏了。
太真实了,Prompt调参比写代码费头发,感觉AI像个阅读理解满分的杠精。
其实这阶段熬过去就好,把异常处理、参数校验这些写进项目规范文档,让它照着来能省一半事。
太正常了,我现在写业务代码也这德行。后来学乖了,先把函数签名和边界条件写清楚,再让它补实现,比来回改prompt省事多了。
你那个“简洁一点”的问题我也踩过坑,现在干脆在prompt里直接禁止它加日志和注释,或者让它先给我看diff再决定合不合并。
其实想想,调prompt本质上是在理清自己到底要什么,思路清楚了手写也就几分钟的事。
太正常了,我刚开始用Copilot写脚本也这德行。后来发现关键得把“处理异常”换成“只捕获特定异常,其余抛出”,把“简洁”改成“删掉所有日志,只保留核心逻辑”,描述得跟写验收标准似的才行。不过话说回来,等你把常用Prompt模板攒起来,后面确实能快不少,前期这阵痛期就当是在训练自己拆解需求的能力了。
太正常了兄弟,我上个月用AI重构一个老模块也这德行。后来我发现问题出在“抽象指令”上,你直接说“处理一下异常”,它肯定按最保守的模板来,try-catch套日志全是标配。不如直接甩给它具体场景,比如“这个接口超时返回502就行,其他异常打日志但别抛出去”,它反而能精准执行。另外我习惯在Prompt里加“不要写注释”或者“参数校验只保留非空判断”,这样能省掉一半扯皮时间。不过说真的,调Prompt的过程其实是在逼自己把需求想清楚,写代码反而变成最不费脑子的环节了,也算另一种收获吧。
太正常了,我最近也有这种感觉。AI对“简洁”的理解跟咱们不太一样,它默认的代码风格总是偏防御性,各种边界检查堆上去。后来我学乖了,直接在prompt里写死“不要加日志,不要加注释,只写核心逻辑”,效果好了不少。另外,把期望的代码结构或者参考样例扔给它,比反复描述要高效得多,这玩意儿其实更擅长模仿而不是理解抽象指令。
正常,AI写代码就是得把需求当代码调,抽象描述换具体规则试试。
太真实了,我现在都是先让它写,再拿diff当prompt反向教它。
太正常了,AI写代码像实习生,你得把需求掰碎了喂,不然它总在“过度设计”和“偷工减料”间反复横跳。
调Prompt本质是在帮它补全你没说清的隐性约束,这功夫省不掉,用久了才懂怎么一把说中要害。
太正常了,AI写代码跟拆盲盒似的,你描述得越具体它越容易跑偏,现在我都直接给示例代码当prompt。
别纠结,这玩意儿本质是“沟通成本转移”,你花时间调prompt,就当是给一个聪明但没常识的实习生讲需求吧。
太真实了,prompt调参比写代码费头发,我现在都先写死逻辑再让AI补测试用例。
正常,AI写代码是玄学,你得学会用“别加日志”这种否定指令,比“简洁点”好使。
太正常了,我现在写代码的时间可能只占三分之一,剩下全在跟模型“谈判”。你描述的“处理异常”和“简洁一点”这两个需求,本质上是冲突的,模型根本没法判断你的业务上下文里哪些异常值得捕获,哪些日志是噪音。我后来学乖了,把项目里的异常处理规范直接粘到prompt里,再配上几个正反例子,效果比单纯说“简洁”好太多。另外,我怀疑你用的模型可能默认偏向“防御式编程”,它觉得多写点总归不会错,但你得明确告诉它“这个接口是内部用的,调用方自己保证参数合法”,这样它才会收敛。还有个野路子,就是写完让它自己review一遍,指出哪些代码是多余的,有时候它能识别出来并主动删掉。总之,别怀疑自己,这玩意儿调prompt确实比写代码更吃经验,等你攒够一批自己的模板,速度就上来了。
太正常了,我现在写复杂点的需求都直接先自己把函数签名和边界条件列出来,再让AI填肉,不然光靠描述它根本get不到你的隐式约束。你那个“简洁”和“处理异常”的拉扯我感同身受,本质上就是自然语言的信息密度太低了。我现在习惯把“不要日志”这种否定指令和“保留参数校验”这种肯定指令塞进同一个句子里,它反而能平衡不少。另外建议试试让它先给方案再动手,比来回改描述省事多了。
太正常了,这玩意儿就像个“阅读理解能力有限的实习生”。我现在的感受是,与其在Prompt里跟它纠结“简洁”还是“详细”,不如直接把边界条件写死,比如“只保留参数校验和数据库异常,其他全删”,它反而理解得准。
另外你也可以试试让它先写一版“最啰嗦”的,然后你告诉它删掉哪些具体代码块,比抽象描述要高效得多。说到底,AI写代码省的是打字时间,但要求你得有更清晰的“代码审美”去当它的质检员。
太正常了,AI现在就是给点阳光就灿烂,你得把需求描述成写代码规范一样细才行。
深有同感,我现在都先让它放开写,再自己砍,比来回调prompt快多了。