转眼间,我使用 Claude Code 已经整整一个月了。这段时间里,它迅速成为了开发者们的新宠,关于 Claude Code 的讨论充斥着我的社交媒体时间线。恰好有网友在 Discord 上让我聊聊 Claude Code,借此机会,我想梳理一下这段时间的使用感受,以及过去两年中 AI 为我的开发工作带来的便利与思考。
需要说明的是,本文并不涉及具体的 AI 使用技巧,纯粹是个人对 AI 辅助编程的一些思考。
从 ChatGPT 到 Claude Code
尽管 AI 已经有很长的发展史,但真正让大多数开发者体会到其对编程的巨大助力,还是从 ChatGPT 开始的。我至今清晰地记得初次使用 ChatGPT 时,它给出的代码建议所带来的震撼。作为一个未受过专业训练的独立编程爱好者,这种感觉犹如身边突然多了一位能随时交流的“专业人士”,极大地提升了安全感。
其实在 ChatGPT 掀起热潮之前,Github Copilot 已经初步展示了 AI 辅助编程的潜力。早期的 Copilot 更像是智能的“代码补全工具”,根据注释自动生成一些简单函数,在一定程度上提升了效率,却未明显提升我的个人能力。随着 Copilot Chat 的推出,它逐渐演变成了一个融合代码自动生成、实时交流与上下文感知于一体的综合性辅助工具。此时,开发者们既兴奋又焦虑,“AI 将取代程序员”的论调甚嚣尘上。但随着使用经验的积累,这种“替代论”逐渐平息,大家逐步意识到,AI 与历史上众多出现过的技术工具类似,终究会成为助力,而非取代者。
正当我认为 Github Copilot 凭借微软的雄厚实力和庞大代码库已拥有绝对优势时,Cursor 又给了我新的惊喜。虽然表面看起来只是 VSCode 与 Copilot 的组合,但 Cursor 更深入的整合、更出色的小模型以及率先对 Claude 大模型的支持,使其智能化程度显著提升。它在代码补全方面与开发者形成了一种难以言说的默契,总能恰到好处地猜到你接下来想做的事情。而当我再一次以为 Cursor 会长期成为我的开发辅助工具时,Claude Code 的出现再次打破了我的认知。
第一次看到 Claude Code 的介绍,我并不感到惊艳,很难想象脱离 IDE,仅依靠终端编程会是怎样的体验。但试用了几个小时后,我毫不犹豫地将 Claude Pro 升级成了 Max 用户。与之前的新工具一样,Claude Code 再次颠覆了我对 AI 辅助编程的认知,它不仅提供了全新的学习和编程方式,也帮我轻松完成了许多过去繁琐的任务。
Claude Code: 其貌不扬,但很好用
Claude Code 虽然脱离了 IDE 的外观,但其核心逻辑与 VSCode + Copilot 或 Cursor 并没有本质的不同,你甚至可以将它理解为 Cursor Agent 模式的极致进化版。Claude Code 就像一位活跃在命令行时代的高手,根据用户的简单描述,通过调用自身内置、操作系统自带以及用户额外配置的各种服务,“自动”执行一系列操作,最终实现你的意图。
举个例子,如果你想让 Claude Code 帮你了解或总结当前项目,只需输入一句:“介绍一下当前这个项目”。它便会自动检索当前目录下的代码,利用命令行工具进行筛选和分析,随后呈现出有条理的结论。得益于更大的上下文容量,它极大地减少了用户手动提供信息的麻烦。
Claude Code 带来的最大冲击,就是提供了一种几乎不需直接接触代码就能完成开发任务的可能性。这种全新的体验震撼了那些已经用惯了各种 AI 辅助工具的开发者,原来还可以这样“写”代码。
Claude Code 的这种接近”全自动”的处理能力并非仅限于编程辅助,也可以应用在其他领域。同时,Google 在不久前推出的 Gemini CLI,在非编程领域还会有更好的表现。
你是编程主体,不要作旁观者
最近,社交媒体上有不少开发者热衷于展示 Claude Code 如何自动完成项目,并分享各种更好地“压榨”其潜力的方法。我甚至看到过一种说法:如果你睡觉时没有让 Claude Code 持续工作,那就对不起你付出的订阅费用,更无法体验到所谓 Vibe Coding 的精髓。
坦白说,尽管我相信 Claude Code 已经具备了独立完成一些开发工作的能力,但至少对我而言,在绝大多数情况下,我依旧习惯于在旁监督、指导它的操作,并积极干预。这背后有很多具体的原因。
例如,Claude Code 虽然拥有较大的上下文容量,但它的全局掌控能力仍然不足。细心观察就会发现,它经常卡在一些令人啼笑皆非的小问题上。比如,它会固执地认为某个枚举项是 .middle
而非 .center
,一次又一次地重复错误的尝试,直到编译报错后才意识到:“使用了错误的枚举项,让我们查找一下正确的定义。”类似的问题屡见不鲜。
此外,AI 编写的代码虽然看似严谨,但缺乏灵活性与创造力。如果完全交给它去独立实现某个功能,结果可能能跑通,但解决方案总显得怪异或不够理想。因此,大多数时候我会先亲手编写一个简略的版本或清晰的思路脉络,然后再让 AI 在这个基础上优化和完善。编程与写作类似,都能在不经意间体现出个人风格。也许 AI 独立写出的代码会更好看,但并不一定是我真正想要的。
再者,AI 虽然熟悉许多 API,但如果缺乏大量成熟案例的支持,它并不能真正熟练地运用这些 API。很多时候,Claude Code 解决问题时会盲目地尝试多种“蛮力”方案,在不同方法之间反复切换。此时,只需简单地按一下 ESC 并给予明确的思路提示,它就能迅速达成目标;但若不加干预,它很可能在貌似勤奋的忙碌中耗费大量时间,却毫无进展。
因此,在过去的这一个月里,我始终习惯于在开启 IDE 的状态下使用 Claude Code,且超过 80% 的时候都会主动介入,以便更快、更准确地获得我想要的结果。
尽管 Copilot、Cursor、Claude Code 等工具的出现已极大地减少了我敲代码的频率,但在实际使用 AI 时,我仍至少有 40% 的时间用来与它们进行交流。与 AI 聊天的主要目的不是单纯地寻求思路,而是通过与它的互动整理自己的想法,让它帮助我判断、验证思路。即便使用 Cursor 时,我大多也会关闭 Agent 模式(采用 Manual 模式),即使使用它给出的代码片段,我依然更偏爱手动输入,以保持手感,并根据个人习惯及时做出调整。
别让 Vibe Coding 阻碍了你的技术成长
“别让 Vibe Coding 阻碍了你的技术成长”,这是我的周报第 83 期标题。那期的评论中,有位读者留下了这样的留言:
成长到某一刻被某家公司裁掉?技术从来都只是工具而已,为了工作、为了挣钱、为了兴趣爱好、为了实现梦想,想通这些背后的目标,和其所带来的驱动力,再来决定把有限的精力放在那里,大多数人就会发现,技术成长只是一段路径而已。希望看到的朋友们不用被几个画地为牢的声音催生的焦虑所影响。技术的变革下,只需看清终点,并以此修正好路径就行了。程序员的终点从来不只是当所谓的大牛。
或许在这位读者眼里,“成长”仅限于编程领域。但我想表达的是,在大模型高速发展的今天,那些积极拥抱 AI 的先行者或许会在短时间内取得显著优势。但随着 AI 普及范围越来越广(不仅限于编程领域),如今凭借先发优势获得的小小领先迟早会因信息差的减少而消失殆尽。
AI 工具往往容易令人产生依赖感,尤其对那些自制力较弱的人而言,长此以往甚至可能导致原有技能的退化乃至丧失。因此,使用 AI 时千万不要将其仅仅看作快速完成眼前工作的工具,更应该借助 AI 提升自己的能力。唯有如此,当“AI 替代”的时刻真正来临时,你才不会成为被取代的那个人。
如果只能在用 AI 更快地完成工作和通过 AI 更好地提升自己之间作出选择,我会毫不犹豫地选择后者。
"加入我们的 Discord 社区,与超过 2000 名苹果生态的中文开发者一起交流!"