我用 Claude Code 两周了,踩过的坑和涨的智
别让 AI 替你拍板,它真的会给你拍出幺蛾子
先说结论:Claude Code 是我用过最猛的 AI 编程助手,没有之一。但它也是一把极其锋利的双刃剑——用好了,一天干三天的活;用不好,你花三天改它一天写的 bug。
今天不聊虚的,直接掏心窝子分享三条血的教训换来的原则。看完你就能避开我踩过的那堆坑。
原则一:提示词越“啰嗦”,代码越“懂事”
先给你讲个真实翻车现场。
有一天我急着写一个日期解析函数,随手丢给 Claude Code 一句话:
“写个日期转换函数。”
好家伙。它给我生成了一个支持 30 多种格式、附带时区转换、农历节气、相对时间计算的百行巨无霸函数。90% 的功能我这辈子都用不上,而且它还引入了一个第三方库。
是我要求太多吗?不,是我要求太少了。
后来我学会了把提示词写成“需求规格说明书”。同样是日期解析,我会这样写:
“写一个 JavaScript 函数。输入任意字符串 dateStr,用
new Date(dateStr)尝试解析。
如果解析成功且不是 NaN,返回YYYY-MM-DD格式的字符串;否则返回null。
不许处理时区,不许引入第三方库,函数体不超过 20 行。”
这次它出来的代码干净得像刚擦过的白板——不多一个字,不少一个标点。
经验公式:你花 2 分钟把提示词写清楚,能省下后面 30 分钟的删代码、改依赖和骂自己。
我现在的习惯是写完提示词多问自己一句:“有没有任何歧义?边界情况说了吗?它会不会自作聪明?” 没有就点发送,有就再补两句。
原则二:永远不让 AI 做决定,你是指挥官,它是你的手脚
这是新手最容易掉进去的坑。
很多人喜欢这样跟 AI 说话:
“帮我优化一下这段代码,看着改就行。”
“这个函数性能太差,你看着办。”
这叫什么?这叫“悬赏式指令”——你把决策权拱手相让,然后指望 AI 比你更懂你的业务。
结果呢?它可能把你的冒泡排序换成了快速排序——速度是快了,但在你那种特殊数据分布下,快速排序的边界条件会漏掉一组数据。它不知道那组数据有多重要,因为你没告诉它。
正确的姿势永远是:你做方案,它写代码。
对比一下:
-
❌ “把这个模块改得更快一点。”
-
✅ “把这个模块里的冒泡排序替换成快速排序,函数入口和出口参数完全不变,不改变原有异常处理逻辑。”
-
❌ “这段代码太乱,重构一下。”
-
✅ “把
userService.js里的数据库连接代码提取成一个独立函数,文件名和对外接口保持不变,其他函数不许动。”
区别一目了然:前者是“你替我想”,后者是“你照我说的做”。
记住一句话:Claude Code 是你手里最快的那把扳手,但它永远不知道自己该拧哪颗螺丝——那颗螺丝,必须你来指。
原则三(我的私藏心得):会话越聊越“失忆”,记得手动刷新上下文
这条经验我几乎没见人提过,但它每天都在救我。
Claude Code 的上下文窗口虽然很大,但不是无限的。当你和它聊了十几轮之后,它会慢慢“忘记”最开始定下的那些约束——比如你半小时前说过“不许用 console.log”,结果它最新的回复里赫然出现了三行 console.log。
不是它故意气你,而是工程限制。解决方案也不难:主动重置上下文。
我每隔 5-8 轮交互,会插一条“状态同步”指令,格式如下:
“【当前任务】继续优化
payment.js的退款函数。
【仍在生效的约束】不许用console.log,只用logger.info;不许引入新依赖;保持函数签名不变。
【上次完成点】已提取重复的金额校验逻辑,请继续下一步。”
这就像给 AI 刷新了一下记忆缓存,成本只有几十个字,但能避免后面花半小时返工。
另一个小技巧:要求 AI 同时输出验证代码。比如让它改完排序函数后,同时生成一段测试脚本,随机生成 1000 个用例对比新旧结果。你别自己去点测试,让 AI 把测试也写出来——这样你合并代码之前跑一下,心里有底,晚上睡得着觉。
最后聊几句
很多人对 AI 编程助手又爱又恨。爱的是一小时干完一周的活,恨的是它总在不经意间“自由发挥”给你埋雷。
但问题的根源其实不在 AI,而在我们怎么用它。你把 AI 当成一个会写代码但完全没有业务常识的实习生,你就知道该怎么带它了:指令要细,决策要牢,记忆要勤,验证要早。
用好这三条,Claude Code 从“猪队友”秒变“神仙搭档”。
你的键盘还在响吗?评论区欢迎分享你的 Claude Code 故事——不管是被坑的,还是爽翻的,都值得被看见。
本文作者:一个正在学习AI、被 AI 教育过、又重新站起来的普通程序员
更多推荐


所有评论(0)