当前位置: 首页 > news >正文

用 Claude Code 越用越不敢用?你缺的不是技巧,是这个骨架

我观察过很多工程师用 Claude Code。

同一个工具,改同一类老项目,结果分化得很明显。有人越用越顺,改造完上线,稳,睡得着觉。有人越用越不对劲,改完不知道动了哪里,不敢上线,或者上线出了事,连夜回滚。

你可能想说,那肯定是提示词写得不一样,或者用法不对。

反正我觉得,这两个答案都不是核心。

差别在一件大多数工程师从来没想清楚的事,给 AI 搭没搭骨架。


先说说「越用越不敢用」这件事。

我觉得这个感受很正常,甚至是你开始真正理解 AI 的信号。

刚开始用 Claude Code 的时候,你容易对它抱有一种模糊的信任,感觉这玩意挺聪明的,改个东西应该没问题。然后你真的让它改,它给了你一段代码,跑起来了,你觉得 OK。

但用着用着,你开始见识到它出错的各种方式。

你让它加一个字段,它加完顺手把同一个类里的几个老方法也「优化」了,因为觉得那几个方法「写得不够规范」。你根本没让它碰那里,那里还是核心业务逻辑。

你让它帮你梳理接口清单,它梳理完给了你一份看起来很漂亮的文档,但你后来发现,有个对接方在生产上悄悄在用的一个老接口,那份文档里压根没有,因为那个接口从来没写进任何文档,只存在于某个老工程师的脑子里。

你让它改一个功能,改完跑测试,全过了,你松了口气准备上线。然后你想起来,那个测试是它自己写的。

。。。

这些经历叠加在一起,就会产生一种说不清楚的不安感,用得越多,越不敢放手让它干。

这个感受是对的。因为你在用一个每次上班都失忆的实习生,但你从来没给它搭过任何骨架,然后把一把钥匙丢给它,让它自己进去改核心机房。

改出事是迟早的。


搭骨架这件事,有个名字,叫三层控制,理解、约束、验证。

三层对应三个问题,AI 看不见、AI 自作主张、AI 产出没法验。这三个问题,大多数人翻车的根源都在这里,只是表现形式不一样。

先说第一层,理解,让 AI 看见。

你把 README 和几个核心文件扔给 Claude Code,让它帮你梳理架构,它会给你一份看起来很专业的文档。

但我问你,那份文档里,有没有那个「某个对接方三年前开始用的、从来没写进文档的老接口」?

大概率没有。

因为 AI 只能看见你给它的东西,它看不见的,它不会告诉你它没看见,它会直接基于它已知的东西给你答案,给得还很自信。

老项目的上下文来自三个地方,代码本身、文档和 wiki、还有人脑。第一层你还好搞定,第二层靠 README 能覆盖一部分,但第三层,那些只活在老工程师记忆里的隐性约定,AI 永远看不见,除非你主动搬出来给它。

「这段不要删」,「这个接口对接方 A 在用,动了他们就挂」,「这个字段名看着奇怪,是当年为了兼容旧版本故意这么写的」,这些东西,你不说,AI 永远不知道。

修复这一层的基础动作,是建两个文件。一个是 ARCHITECTURE.md,让 AI 先帮你画一遍架构全景,你在上面标注哪些模块是核心的、哪些已经废弃、哪些地方动了会出事,把这些标注保存下来。另一个是 CLAUDE.md,这是 Claude Code 每次启动都会自动读取的指令文件,你把项目的隐性约定、禁止修改的地方、命名规范统统写进去。

今天可以做的第一步,打开你的项目,问自己,有没有哪个地方「动了一定出事但从来没写成文档」,把这条写进 CLAUDE.md。就这一条,先开始。


说到这块,第二层的问题其实更隐蔽,约束,让 AI 听话。

我觉得「AI 犯错」和「AI 好心帮你」是两件完全不同性质的事。

AI 犯错,你发现了,修就是了,还好。但 AI「好心帮你」,你可能根本不知道它帮了什么,等出了问题才往回查,才发现它在你没注意的地方动了一堆东西,全是它自认为的「最佳实践」。

这比 AI 犯错难防多了。

AI 的本能,是按它训练数据里理解的「规范写法」去处理代码。老项目里很多东西不是按规范写的,是有历史原因的,AI 不知道这些原因,它就按它的判断改,改出来的东西你不想要,但它完全没意识到自己做错了什么。

约束层解决这个问题,分两种。

静态约束是写进 CLAUDE.md 的长期规则,比如「只动你要改的文件,不要顺手重构其他文件」,「这个类的方法签名不能改,是对外兼容用的」,「命名用下划线风格,不用驼峰」。写一次,后面反复用。

动态约束是每次给 AI 任务时的即时指令,比如「只改这三个文件,其他一律不动」,「改之前先跟我确认方案」,「有任何不确定的地方停下来问我,不要猜」。这些每次都要给,不能省,不能指望 AI 记住上次说的。

Anthropic 官方把给 AI 搭约束框架这件工程工作叫 Harness Engineering,Harness 原意是马具,套在马身上让马按你的方向跑。这个比喻很准确,AI 不是天然就往你要的方向跑的,你得给它套上马具。

今天可以写进 CLAUDE.md 的第一条规则,「改动代码时,只修改任务明确要求的文件,不对其他文件做任何改动,包括重构和格式整理。」把这条粘进去,先有第一条。


第三层,验证,让 AI 可信,这层是大多数人完全没有的。

AI 给你一段代码,跑起来没报错,测试也过了,你觉得可以用了。

先问一个问题,那个测试是谁写的?

如果是 AI 写的,你刚才验证的,只是 AI 对它自己产出的判断。

这是一个封闭的圈,AI 用它自己不知道的盲区,去测试它自己的盲区。它能写出一个逻辑完整的函数,同时没意识到某个并发边界,而它写的测试,天然就覆盖不到它没意识到的问题。

你以为测试通过了就安全了,其实只是在一个封闭的圈里转了一圈,圈外的问题还在那里。

打破这个圈,需要一套独立于 AI 的基准。

改造之前,让 AI 先写一套覆盖核心链路的集成测试,锁住项目现在的实际行为。改完之后跑一遍,看什么被破坏了,被破坏的地方就是需要关注的地方。

对于那些说不清逻辑、也没有文档的老代码,还有一种叫 Characterization Test 的做法,让 AI 根据代码的当前实际行为写测试,不是测「代码是不是对的」,是测「改之前和改之后行为是不是一致的」,防止你在不知情的情况下改变了老代码的行为。这个概念来自 Michael Feathers 的《修改代码的艺术》,做老系统改造的工程师可以去翻一下。

改完还有一步,接口改造的话,最后用 curl 跑几个真实场景,对比改造前后的响应,有没有格式变了、字段少了、状态码不对了。

今天可以做的第一步,下次让 AI 改代码之前,先让它写一套集成测试把核心流程的行为锁住,再动代码。就这一个动作,安全感会明显不一样。


说完三层,有个误解要讲一下,这可能是大多数人三层转不起来的真正原因。

很多工程师读到这里会想,OK,那我以后改项目之前,先做理解层,再做约束层,再做验证层,走完一套流程再开始。

不是这样的。

三层不是一个按顺序走一遍的流程,是一个时刻在工作的骨架。

你在改代码,过程中 AI 问了一句「这个字段什么含义」,你回答了,这一句进了理解层,应该沉淀到 CLAUDE.md 里。你在提示词里加了一句「不要改测试文件」,这一句进了约束层,以后同类任务可以复用。你改完补了两个测试 case,这进了验证层,安全网又密了一点。

理解、约束、验证,不是三件你要专门花时间「建立」的事,是每次你和 AI 协作的时候都在同时做的三件事。

稳定用 AI 的工程师,每次协作都是在给三层添砖加瓦,积累越来越厚,AI 表现越来越稳。混乱用 AI 的工程师,每次从零开始,用完就扔,下次还是同样的混乱,甚至更混乱,因为项目越来越复杂但骨架还是空的。

回到开头那两种工程师。

一个越用越稳,一个越用越不敢用。

差别就在这里,不是提示词,不是模型,是有没有在每次协作里给三层添砖加瓦。

你知道该怎么选了。


觉得有收获,点个赞、在看、转发支持一下;想不错过更新,记得星标⭐。下次见。

本文由mdnice多平台发布

http://www.jsqmd.com/news/797594/

相关文章:

  • USB端点描述符避坑指南:搞懂这7个字节,告别设备枚举失败
  • Hubot Sans性能优化:如何减少CLS并提升网页加载速度的完整指南
  • 佛山爱马仕香奈儿LV包包回收回收哪家强?收的顶免费上门秒到账 - 奢侈品回收测评
  • 2026压力变送器品牌推荐排名,广东犸力以精准高效性能,稳居行业头部位置 - 品牌速递
  • 布氏硬度计/洛氏硬度计推荐公司:2026年技术实力+用户评价双优品牌盘点 - 品牌推荐大师1
  • 设计程序分析远程办公与线下办公工作产出数据,对比两种模式优劣,帮助企业制定灵活现代化办公制度。
  • mckays-app-template终极性能优化指南:Turbopack加速与最佳实践
  • 百度网盘直链解析:5分钟掌握免费高速下载技术
  • 门电路的电气特性详解
  • 2026年深圳办公设备租赁公司最新推荐榜:打印机租赁/复印机租赁/办公耗材/电脑租赁 - 海棠依旧大
  • 餐饮代运营服务怎么选?从成都外卖市场看平台选择 - 行业观察日记
  • 告别Mac NTFS只读限制:Nigate免费开源工具终极指南
  • 降重 + 降 AIGC 双效合一!虎贲等考 AI:不改原意、保实证、论文安全通关
  • update-golang故障排除:常见问题及解决方案大全
  • Gemini在Android Automotive OS上的首次深度集成(车规级低延迟通信协议逆向分析+CAN总线AI指令映射表)
  • 喜马拉雅FM下载器:三分钟解决付费音频离线收听难题
  • Stryker.NET终极指南:如何通过变异测试提升.NET代码质量
  • 厦门闲置手表变现攻略|收的顶探店:鉴定专业 + 报价公道 + 安全靠谱 - 奢侈品回收测评
  • CANN/asc-devkit数据块最小归约函数
  • Pencil iOS界面原型制作:一步步创建完美设计
  • Notifier for GitHub桌面通知设置:如何开启声音提醒和视觉提示
  • 新手避坑指南:Allegro画封装时,焊盘路径、Place_Bound和丝印层这3个地方千万别搞错
  • 2026合肥外景婚纱摄影权威攻略|外景风格分类、场地选择、品牌排名、避坑指南 - 安徽工业
  • AI-Trader性能优化:提升AI代理交易速度的10个终极技巧
  • 2026年深圳办公设备租赁服务商参考:深圳市永盛达办公设备有限公司,覆盖打印机、复印机租赁及硒鼓耗材配套服务 - 海棠依旧大
  • WhisperPlus自动字幕生成:为视频添加多语言字幕的简单方法
  • 小白程序员也能抓住的AI高薪机遇:大模型时代的机会与挑战
  • 效率提升93%:支持部署的AIPPT赋能企业办公升级 - 速递信息
  • 终极Visual C++运行库解决方案:3分钟搞定Windows系统兼容性问题
  • 乡村全科网课怎么选?零基础、基础弱考生给出不同答案 - 医考机构品牌测评专家