---
layout: post.njk
source: https://baoyu.io/blog/2026-04-01/learn-from-open-source
speaker: baoyu.io
title: Claude Code 源码泄漏了，但我不打算写源码分析分析文章 | 宝玉的分享
date: '2026-04-01'
summary: 这篇文章以 Claude Code 源码泄漏事件为引子，分享了作者“宝玉”关于如何学习大型开源项目的四步法：先运行，再聚焦具体功能，接着动手做二次开发，最后尝试独立搭建。作者强调实践和“做中学”的重要性，认为 AI 辅助带来的理解是借来的，不如亲手实践。文章还讨论了泄漏代码的有限价值、Anthropic 对事件的成熟回应，以及闭源模型的优势。
area: tech-engineering
category: software-development
tags:
  - open-source-learning
  - software-development-methodology
  - ai-codebase
  - hands-on-coding
people:
  - 宝玉
  - Boris
companies_orgs:
  - Anthropic
products_models:
  - Claude Code
  - /buddy command
media_books: []
draft: true
status: evergreen
---

宝玉的分享

Menu

See all posts

Published on 2026-04-01

# Claude Code 源码泄漏了，但我不打算写源码分析分析文章

作者：

宝玉

Claude Code 源码泄漏了，满屏都是“深度分析”文章。也有朋友让我写一篇分析文章，但代码才泄漏十几个小时，50 多万行代码，想深度分析清楚还是有难度的。不过授人以鱼不如授人以渔，我更想聊聊：拿到一份开源代码，怎么把它真正学到手。

这套方法不只适用于 Claude Code，任何大型开源项目都一样。

## 第一步：先跑起来

拿到源码之后，大部分人的第一反应是打开文件开始读。

别急。先跑起来。

这次泄漏的 Claude Code 代码是 source map 还原后的结果，缺了很多脚手架和私有 package，没法直接运行。我本来打算自己折腾一下，结果发现已经有人搞定了（https://github.com/claude-code-best/claude-code），直接用就好。

> 注：这个项目作者我不认识，只是我可以正常下载运行，所以推荐，后续项目如何发展我并不清楚，而且被下架的可能性很大。有兴趣的可以尽早把代码下载到本地，并让 AI 分析一下代码有无安全问题后再运行。

为什么一定要跑起来？两个原因。

一是你能直观看到运行结果。代码是死的，运行起来才是活的。 你读代码时觉得“这个函数大概是做这个的”，跑一遍就知道你猜对了没有。

二是你可以打日志、设断点。后面分析具体功能的时候，这是核心手段。光用眼睛在几万行代码里找逻辑，跟大海捞针差不多。跑起来之后加个 console.log，代码自己会告诉你它在干什么。

## 第二步：以点带线，以线带面

项目跑起来了，下一步很多人会犯一个错误：试图从入口文件开始，把整个项目从头读到尾。

几万行代码，这么读下去三天就放弃了。

更好的做法是从一个具体的功能点入手。

比如你对 Agent Loop 感兴趣。那就打印或者收集所有的 API 请求，看它发给模型的 Prompt 长什么样，模型返回了什么，Claude Code 拿到返回之后又做了什么。一轮对话下来，你对“一个 Agent 怎么拆解任务、怎么调用工具”就有了直观的认识。

以前我用 claude-trace 做过类似的事情，可惜后来用不了了。现在有源码了，自己加日志能做得更细。

当你搞清楚一个功能点之后，自然会接触到它经过的模块：输入怎么进来的，经过了哪些处理，工具调用怎么触发的，结果怎么拼回去的。模块之间的关系，就这样一个一个串起来了。

别贪多。搞透一个功能点，比走马观花看十个模块有用得多。

## 第三步：动手改，在代码上留下你的痕迹

光看代码，学到的东西很容易变成“感觉自己懂了”。一动手就原形毕露。

但从零写一个也没必要。对于一个已经成熟的项目，最好的练手方式是二次开发。

举个例子，Claude Code 刚发布了一个 /buddy 命令，会给你养一只小宠物。你可以试着自己实现一个类似的斜杠命令，或者给它加点新花样。再比如 Claude Code 的记忆功能，你可以研究它是怎么存储和读取记忆的，然后试着自己实现一套记忆机制。它的架构已经相对稳定了，你只需要在现有框架里填充逻辑，入门门槛其实不高。

做二次开发的时候，尽量别用 AI 辅助。

我知道这听起来很反直觉。用 AI 写代码效率高这么多，为什么不用？因为目的不一样。你的目标是学习，不是交付。让 AI 帮你写了，你跳过的正好是最有价值的思考过程：为什么要这样组织代码？这个模块为什么放在这里？接口为什么这么设计？

当你能从头到尾靠自己把一个功能开发出来，你对这个项目的理解就从“看过”变成了“做过”。

多做几个功能之后，你会越来越熟悉它的整个架构，甚至开始觉得有些地方可以做得更好。

这就对了。

## 第四步：从模仿到超越

通过二次开发你熟悉了项目架构，知道它“是什么样的”。但有一个问题一直留着：当初为什么要这么设计？

架构决策的背后往往有很多你看不到的东西：历史包袱、团队规模、时间压力、当时的技术限制。你站在结果面前，看到的是“选择了 A”，但看不到“为什么没选 B 和 C”。

想搞清楚这些，最好的办法是自己从零搭一个。

不需要功能完整，不需要面面俱到。按照你自己的想法，参考原来的架构，重新做一遍设计决策。你会发现那些你以为“显然应该这样做”的地方，一动手就出问题了。然后你就理解了原作者为什么那样选。

这一步是最难的，但也是收获最大的。

走到这一步，你已经不只是“读懂了”这个项目，而是有能力做出自己的架构方案了。

## 最后

这四步说起来简单：跑起来 → 从一个功能点切入 → 二次开发 → 从零搭建。但我观察到一个有意思的现象：大多数人卡在第一步和第三步之间，也就是“看了很多，但没动手写过”。

AI 时代更容易出现这个问题。让 AI 帮你分析代码太方便了，几秒钟就给你一份“架构全景图”。但这种理解是借来的，经不起追问。

你用过什么方法学开源代码？有没有哪个项目是你真正“啃”下来的？

## 附：聊几句这次 Claude Code 代码泄漏本身

泄漏代码的价值，有限。

有人从泄漏的代码里逆向了 Claude Code 的相关逻辑，做出了开源的 SDK。思路挺好，但这份代码是静态的，Claude Code 一更新你就跟不上了。拿来学习可以，拿来做产品基础不太现实。

对行业的影响也没有一些人渲染得那么大。普通开发者用不着看这些，大厂该逆向的早就逆向了。真正受益的是一小部分有兴趣深入研究的开发者和小团队，从里面确实能学到一些有价值的技术细节。

有人问既然都泄漏了，Anthropic 为什么不干脆开源？ 我觉得不可能。闭源的好处太多了：

代码质量不用太讲究。一个 React 文件写了几千行，闭源没人知道，开源出来会被喷死。

可以暗搓搓加料。防蒸馏的逻辑、用户标识的记录，甚至“不小心”导致第三方 prompt caching 失效的 bug，闭源不用担心被抓包。

可以控制发布节奏。这次就发现了不少隐藏功能，比如 /buddy 早就开发好了，就等愚人节开启。开源的话这种惊喜就藏不住了。

快速迭代不用走复杂的代码审查流程，开源的顾忌多得多。

有一件事值得一提。 Anthropic 正面回应了这次泄漏，Boris 说得很好：

> 工作中，犯错总是在所难免。但作为一个团队，最重要的是要达成一种共识：出了问题绝不该怪罪到某个人头上。真正的“罪魁祸首”往往是我们的流程设计、团队文化，或者是底层的基础设施。

这次的问题出在一个本该自动化、却还是人工手动操作的部署环节上。没有怪到个人头上，也没有因此开除谁。那些号称“刚加入 Anthropic 搞出这事被开除了”的都是蹭热度的营销号，别信。

直面问题，改进流程。这才是一个工程团队该有的样子。

See all posts

Built by 宝玉.  RSS . 本站原创内容，独家授权赛博禅心公众号发布。

Toggle theme