Clipping 微信公众号

用了 Claude Code 一年多,我想说几句扎心的实话

Created: 2026-05-17

公众号名称:三木AI编程

作者名称:Sam

发布时间:2026-05-17 13:01

一年前,我的日常是:想清楚需求 → 自己写代码 → 调试 → 上线。

一年后,我的日常是:想清楚需求 → 告诉 Claude Code → 盯着它干活 → 上线。

听起来差不多。实际上,中间那个环节从”我花几小时”变成了”它花几分钟”。

这不是比喻,是我过去一年多真实的工时记录。

先说一个让我真正信服的时刻

我做出海 SaaS,之前有一个需求拖了三个月没动:给产品加 Stripe 订阅升降级的逻辑。不难,但涉及 Webhook 处理、proration 计算、状态机更新,细节多,踩错一个坑可能导致用户被多扣款或者少扣款。

我有点担心。一直拖着。

有一天,我打开 Claude Code,把需求描述丢进去:

帮我实现 Stripe 订阅升降级逻辑。用户可以从 Basic($9/月)升级到 Pro($29/月)或降级。升级立即生效并按比例扣费,降级在当前账期结束后生效。需要处理 Webhook 事件 customer.subscription.updated,更新数据库里的用户订阅状态,并且 Webhook handler 必须是幂等的。

它花了大概8分钟,给我写了完整实现:Stripe API 调用、Webhook handler、数据库事务、幂等性检查,还主动加了一条注释说明 proration 的计算逻辑。

我逐行读了一遍。逻辑是对的。细节是对的。它甚至用了整数存储金额(分),没有用浮点数。

这个功能我拖了三个月。它花了8分钟。

那一刻我才真正理解”效率差10倍”这句话不是营销话术。

但它和 Cursor 不一样,这个区别你必须搞清楚

很多人把 Claude Code 和 Cursor 混着说。我用两个都超过一年,必须把这个区别说清楚。

Cursor 是增强型编辑器,它坐在你旁边,帮你补全、解释、改错。每一步你都在场。你是主刀医生,它是手术助手。

Claude Code 是终端里的独立 Agent,你给它一个目标,它自己去翻文件、改代码、跑测试、处理报错、再修再跑,整个闭环它自己完成。你布置完任务可以去泡杯咖啡。

说人话就是:Cursor 是把你变成更快的程序员,Claude Code 是让你不用一直盯着代码库。

这个区别在处理复杂任务时特别明显。

比如”帮我把项目从 Pages Router 迁移到 App Router”这种任务,涉及几十个文件的改动,路由结构重写,数据获取方式变更,还有一堆兼容性问题。

Cursor 处理这种任务:你得一个文件一个文件地喂给它,确认每步改动,自己维持全局视角。

Claude Code 处理这种任务:它自己扫描整个项目结构,列出迁移计划,逐步执行,遇到报错自己修,改完跑测试,测试过了告诉你”完成了,这里有3个地方需要你手动确认”。

我迁移过一个有 47 个页面的项目。全程我只介入了两次——一次确认迁移策略,一次处理它标记出来的边缘案例。

具体哪些工作方式变了

不说虚的,直接说我自己的变化。

变化一:原型速度提高了,但我更谨慎了

以前做出海产品,从想法到第一个可用原型,快的话三天,慢的一周。现在用 Claude Code,一天内能看到可运行的东西。

但这里有个反直觉的地方:速度快了,但我花在”想清楚需求”上的时间反而更多了。

因为 Claude Code 执行力太强——你说什么它做什么,方向错了它跑得更快更远。以前因为写代码慢,你在动手的过程中会自然地想清楚很多细节;现在它跑得太快,你必须在开口之前就把逻辑理顺。

这个变化让我养成了一个习惯:每次开始新任务前,先用10分钟在纸上把需求、约束和成功标准写出来,然后再告诉 Claude Code。

变化二:我开始真正理解”声明式描述任务”

这是我觉得用好 Claude Code 最核心的认知转变。

以前我习惯命令式:帮我加个邮件验证修一下这个 bug

现在我用声明式:

帮我实现邮件格式验证。写测试覆盖以下场景:空字符串、缺少@符号、缺少域名、正常邮件地址。然后让所有测试通过。

区别在哪?命令式告诉它做什么,声明式给它成功标准。 有了成功标准,它可以自己验证,自己循环修正,不用每做一步都来问你”对了吗”。

这个思路来自 Andrej Karpathy 的一个观察:LLM 特别擅长”循环直到达成特定目标”。你不是在给它下指令,你是在给它设定终点,然后让它自己找路。

变化三:我的”会写代码”定义变了

以前”会写代码”意味着:能自己实现功能,知道语法,懂算法。

现在”会写代码”的含义多了一层:能准确描述你想要什么,能判断 AI 给你的东西对不对,能发现它踩坑了、在哪里踩的。

这个后半部分其实要求更高,不是更低。你得懂得足够多,才能知道它的代码哪里有问题。

所以”Claude Code 让不会写代码的人也能做产品”这句话是对的,但有个隐含前提——他们做的产品,代码质量很难保证,出了生产事故也不一定看得懂。

真正用好 Claude Code 的人,是那些本来就懂技术,现在能把10倍的事情完成的人。

用好它的3个关键习惯

不是什么大道理,就是我踩了很多坑之后的实际做法。

习惯一:用好 CLAUDE.md

在项目根目录放一个 CLAUDE.md,写清楚这个项目的技术约束和行为边界。Claude Code 每次启动会自动读它。

最基础的几条:

# Project Constraints

## Code Style
- All monetary values stored as integers (cents). Never floats.
- All timestamps use TIMESTAMPTZ. Never naive datetime.
- Passwords: bcrypt only, cost factor >= 12.

## Behavior Rules  
- Don't modify code outside the scope of the current task.
- If you find a security issue while working, mention it — don't fix it silently.
- Before implementing, state your assumptions. If uncertain, ask.

这里有个细节要注意:CLAUDE.md 控制在 150 行以内。我曾经写到 400 行,发现后半部分规则它基本上不遵守——System Prompt 太长会稀释注意力,关键规则得放在前面。

习惯二:复杂任务先让它列计划,你确认了再让它执行

对于涉及多个文件或有一定风险的任务,不要直接说”去做”,先说:

分析一下实现这个功能需要哪些步骤,每步会改动哪些文件,有什么风险点。先给我看计划,我确认后再执行。

这样做的好处是:你能提前发现它的理解偏差,而不是它改了20个文件之后你再发现方向不对。

习惯三:跑完告诉我”你改了什么”

每次让它做完一个任务,最后加一句:

总结一下你改动了哪些文件,每个文件改了什么,有没有你不确定的地方。

这个习惯帮我避免了好几次”它悄悄改了我没让它改的东西”的情况。

踩坑实录

坑一:它的”主动优化”差点让我的 SaaS 用户数据串了

有一次我让它修一个查询性能问题,一个 SQL 查询跑得慢。它修完之后,顺带”优化”了一下附近的查询——把一个本来按 user_id 过滤的查询改成了全表查然后在应用层过滤。

逻辑上没错,但我的系统是多租户的,那个 user_id 过滤同时也是租户隔离的一部分。它不知道这个背景,好心办了坏事。

我在 Code Review 的时候发现了,但如果没发现直接上线,不同租户的用户是有可能看到彼此的数据的。

怎么发现的: 我做了一个习惯——任何跟数据查询相关的改动,我都会手动检查过滤条件有没有被动过。那次就是在这个检查里发现的。

怎么解决的: 在 CLAUDE.md 里加了一条:In multi-tenant queries, never modify WHERE clauses that include tenant_id or user_id without explicit instruction.

坑二:它会”自信地”告诉你一个不存在的 API 用法

Claude Code 给我写了一段 Stripe 代码,调用了一个叫 stripe.subscriptions.pause() 的方法。看起来合理,用法写得也很标准,我差点直接用了。

测试的时候报错:这个方法不存在。

查了 Stripe 文档,才知道暂停订阅的功能在 Stripe 里是通过 pause_collection 参数实现的,不是一个独立方法。Claude 把它想象成了一个直觉上应该存在的 API。

怎么发现的: 跑测试的时候报错了,这是运气好。

怎么解决的: 涉及第三方 API 的代码,我现在会在 CLAUDE.md 里加一条:For Stripe API calls, always verify the method exists in the official Stripe docs before using it. If unsure, ask.

另外我的习惯是:所有第三方 API 相关代码,写完必须跑一遍,不跑测试不上线。

总结

Claude Code 不是魔法,也不是替代品。

它是一个极其能干的执行者,但它需要一个极其清醒的指挥官。 你越清楚自己要什么,给的上下文越准确,它输出的东西就越可靠。你越模糊,它就越容易跑偏——而且跑得很快。

所以与其说”Claude Code 让你不需要会写代码”,我更愿意说:它让你的技术判断力值10倍的钱。


最后一个实际的问题: 你用 Claude Code 处理的任务里,有没有它”看起来完成了但实际上有坑”、而你差点没发现的情况?是什么场景?最后怎么发现的?


cover_image

Original Sam 三木AI编程


内容效果不满意?点此反馈

输入关键词开始搜索