Claude 编程经验
Claude Code,或者说 AI 智能体编程,聊一下个人的一些感受与心得。
感受 ⛵
与 AI 智能体协作编程,可以说像是在航海,一起驶向计划的目的港。
我虽是那个舵手,但能放手让 AI 来掌舵了。不过,难免偏航,不时需要人来纠正一下航向。
我并没有甩手全权交给 AI,想来是几个方面吧:
一是 AI 确实会偏航;二是我懂编程有能力驾驭;三是凭感觉、不那么激进。
无论如何,个人用 AI 编程一直感受挺好。到目前的变化就是更放得开手,让 AI 做更多事情。
也印证着,或者说我在跟随着,AI 日复一日的进步。
变化 🌊
目前,与 AI 协作编程,最大的变化是:我更多做引导决策,而不是给明确指令。
例如,只给目标方向,让 AI 设计、计划、执行、测试、审查、优化。换一句话说,就是让 AI 参与了整个开发流程,包括写文档。
但想了一想,之前难道不是么?其实一直都是,因为编程本就是这样。
只是 AI 智能体把工作流整合了,更符合编程习惯,让 AI 参与更深度了。
其实,我这里少了几环:需求分析、系统设计、技术选型等。前期这些一开始就先做了,到 AI 这里主要是开发工作。
环境 🖥️
在聊心得之前,先说一下环境。最近一直用的 Claude Code CLI。
模型呢,上月都是 DeepSeek V4 Pro,这月则是 MiMo V2.5 Pro。之前,用过 Claude Opus 4.7, Zhipu GLM 5.1。
工作流,则是用的各 Skill 手动指挥的,而非直接端到端的实现。上次分享过。
心得 💡
心得,分两方面,先是 AI 编程通用的,再是 CC 工具有关的。
AI 编程
1)AI 编程,还是编程
曾经哪听说过“未来每一个人都要会编程”,AI 让这变成了可能。
编程,往小了说,也只是一种用工具的能力,与会用 Excel 是一样的。
以前用笔画表,现在用 Excel 画,更简单了。现在用 Excel 做的,以后 AI 来做了。Excel 不够,AI 自己编程创造去做。
但编程,往大了说,它仍是软件工程。AI 编程也一样,只有按工程办法来,才能做好一个系统。
也就是,懂得软件工程、系统架构、研发流程的,才能保证更高的下限。
无论懂不懂编程,如下几件事一定要沉淀下来:
- 文档
- 使用说明:编译、运行、测试、部署
- 架构设计:层次关系、边界约束
- 接口设计:接口协议、模块设计
- 流程
- Git 规范: 修改提交必建分支(防丢)等
- 提交前约束: 让 AI 审查、自测,过 CI 等
- 测试
- 多级测试:单元、集成、系统
关键在于来一个新人或 AI 能自己上手、规范提交。
2)AI 智能体,有何用?
AI 编程,现在都是用 AI 智能体来编程,也就是 AI Agent Coding。
能刷到这一篇文章的想必都了解。简单说,AI Agent 让大模型长出了手脚,自己用编程工具。
AI Agent 是围绕模型形成的一套工作流,也自成一套小生态。
那重点来了,围绕模型,谁的模型?也就是说,有适配性。
Claude Code,简称 CC,当然与它自家的 Claude 模型最适配了。
进一步说,这也是为何各大模型厂商一定要出自己 AI Agent 的原因之一。也是我会切换用原厂 AI Agent 的理由之一。
3)AI 模型,有何差异
AI 模型,是有差异。但 AI 编程使用差异,不一定是模型带来的。
先说模型自身的编程能力,以我的经验,即使相比以前 AI 聊天来编程,产出质量差异并不大。
但不可否认,模型编程能力是有差异、在进步。只是对不懂编程、直提需求的人来说,差异感受才会大得多。
至于 AI 编程上的差异感受,主要来源于两点:
一是刚提到的与 AI Agent 的适配性,二是有没有依照软件工程的工作流。
另外,AI 模型的调用延时,也当关注。这影响效率、甚至工作形态。
4)AI 编程,为何偏航?
首先,与人对需求理解有差异一样,AI 对提示理解也不一定准确。
所以,对于复杂一点的提示,要与 AI 讨论、扩散思路、澄清想法。这就是 /idea /grill-me /office-hours 这类技能的用途。
如果有你不确定的,只管问 AI 原因,最后决策并沉淀进文档。
如果发现 AI 误入歧途,最好即时中止,澄清后再继续。这也建议优先计划再执行。这也是 /spec /plan 等技能的用途。
总不能每时每刻都盯着 AI 输出吧😅,所以要计划清楚。
其次,AI 目前还是有上下文瓶颈,遗忘约束或注意力不在。
例如,即使一些规则落盘进了 CLAUDE.md,但 CC 长对话后还是忘了。
此时,要么让 AI 重读,或阶段性重开。也是之前为何强调一定要沉淀文档、流程、测试。
至于这个问题,如何从根本上解决?
我认为,即使无限上下文长度,也并不能解决。因为注意力是有限的,无论人和 AI 都一样。
什么意思?说到底,给 AI 模型的仍是一段提示,其中一部分是约定的基本约束,但太长了,给分配的注意力不还是少了么。
就像我读一篇长科幻,一开始有个基础约定,读到最后就不记得了。除非这个约定是贯穿始终的。
所以,想法是,要么 AI 模型对基础约束可固定注意力,无论是分层次、还是加权重。这得等 AI 升级了🚀。
或者工程上简单一点,基础约束在长文本里,固定间隔插入,多重申几次。
最后,则是编程本身就是要把控的,不然“屎山💩”哪来的?
这与 AI 无关,两个原因:编程习惯与责任心、业务变更与紧急度。
当然,永远是冲突的、没时间的。其实,第一要看的是重要性,有些“屎山”在那也无所谓啦。
反而有了 AI,更有时间让代码保持健康度、提高质量下限。
一是,人工审核不对味的,提示 AI 改。反正快。
AI 也是一样不断堆砌代码。即使加了 Karpathy Skill 底层规则,发现长对话后仍一样,估计注意力不在了。例如:
- 函数参数越加越多,得人工提示一句把参数封装一下。
- 类或单文件里功能越来越多,得人工提示怎么拆分组合一下。
此外修改浮于表面,不是本质、或不优美,得人工审问或调试来补充信息。总之,要人工剔除一下坏味道。
二是,AI 改动较多的,一定让它自己审查一遍。挺周全。
AI Agent 多角色,其审查还挺专业,各方向都照顾到了。也就是记得用 /review /simplify 等技能。
三是,一定阶段之后,人工审查架构、整理重构。仍不足。
只看 AI 的每次改动,有些坏味道是发现不了的,或者当时改动影响大先缓一缓的。
所以一定阶段后,一定要人工看看。或者等 AI 执行时,浏览代码。
也就是,不定期微重构。一般涉及:
- 通用:类型、常量,魔法数
- 封装:抽象、特例,模块化
- 框架:拆分组合、用设计模式
CC 工具
AI 编程、技能、工作流等,都聊过了。CC 工具里,也是一样的。它自身有关的心得,反而没多少了🤔。
1)阶段性重开会话
CC 本身 context 到一定程度会自动 compact,可以在配置里修改或手动执行 /compact。
此外,可以完成一个阶段后,重开会话,读取上手文档,重新开始下一阶段任务。
2)选择性并行开发
CC 本身会话时就能多开 Agent 来并行任务。此外,可以用 worktree 来并行开发。
但建议另开终端,而不是对话建 worktree,也不建议重命名。因为遇过问题😅。
另外,并行高强度使用,会发现文本输入太慢,所以如 TML 语音对话,会是下一次交互革新吧。
不过,这也挺费脑的,注意劳逸结合。
3)按需求选用模型
模型目前都分 Pro 与 Flash,看自己预算与需求做选择。
我用 Pro,想着质量好一点、慢一点也能接受。Flash 没多用,不做对比。
而用不同模型,感受确实有差异,可能有些和 CC 不够适配吧。
例如执行中插话被忽略,一句多件事情会漏掉,甚至有时卡住要中止再继续。
所以用模型原厂出的 Agent 可能更合适,如果有的话。
模型切换,缓存命中就没了,所以最好下一阶段时再切换。
结语 ☕
Let's Go Coding ~