这个 AI 工具能在你动代码前自动梳理整个代码库 (Understand-Anything)

BBetter Stack
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00加入新团队,克隆代码库,打开工程。
00:00:04眼前就是这样,一个二十万行的代码库,让你不知所措。
00:00:09所以你做了每个开发者都会做的事。
00:00:11使用 grep,在文件间跳转,大概还会让 Claude 解释这个代码库。
00:00:17如果能有一张地图呢?一张真正能教你理解代码库的交互式地图?
00:00:22流程、架构层、变更、影响,这就是 Understand Anything。
00:00:27它在几周内 GitHub 星标就突破了 14,000,许多开发者都在讨论它。
00:00:32它。
00:00:33接下来一分钟,我将展示它是如何运作的,以及它将如何极大地
00:00:36加速你对代码库的理解。
00:00:44Understand Anything 是一个开源的 Claude Code 插件。
00:00:47它也能适配 Cursor、Copilot 和 Gemini CLI 等工具的工作流。
00:00:53你只需将它指向一个代码库甚至是知识库,它就能将该项目转变为一个可查询的、
00:00:58交互式的知识图谱。
00:01:00它是通过静态分析加多智能体 LLM 处理来实现这一点的。
00:01:05但重要的不是技术栈。
00:01:07重要的是它真正解决的问题,因为每个开发者都遇到过这种情况。
00:01:13你刚接触某个遗留代码库、遗留应用。
00:01:16文档已经过时了。
00:01:18了解一切的工程师在六个月前就离职了。
00:01:22而你的 AI 编码助手只会一遍又一遍地瞎猜。
00:01:26这正是该工具真正发挥作用的地方。
00:01:28让我们运行一下。
00:01:29如果你喜欢能加速工作流的编程工具,请务必订阅。
00:01:33我们一直在推出新视频。
00:01:35这是一个中等规模的项目。
00:01:36它大到足以让人恼火,但又小到足以让我向你展示
00:01:40它有多酷。
00:01:42这只是我从 Google 微服务项目中克隆的代码库,而且规模小到我们可以
00:01:46无需虚构,直接进行测试。
00:01:49首先,我要安装插件,就在 Claude 里,插件安装,Understand
00:01:54Anything。
00:01:55生成完成后,我们需要重新加载插件,当然,然后我们只需要运行
00:01:58Understand 命令。
00:02:00现在它要扫描整个代码库。
00:02:03它提取出结构、关系、关键模块以及潜在的业务概念。
00:02:09现在我们可以运行仪表盘命令来启动一切。
00:02:11首先,这运行了很久,大约 30 分钟,而且消耗了海量的 Token。
00:02:16所以有一个好的 Claude 订阅计划是必须的。
00:02:19我有 Claude Max,这次用掉了我 25% 的配额,消耗非常快。
00:02:24但完成后,我们可以打开仪表盘,这是最酷的部分,真正让人感同身受。
00:02:29我可以缩小并查看高层架构。
00:02:30我可以放大并访问内部细节。
00:02:32我可以点击查看代码构成以及这些代码是如何关联的。
00:02:35我甚至可以点击并查看代码本身。
00:02:40然后我可以在这里搜索,比如 “payments”(支付)。
00:02:43通常我得在路由、服务、模型、处理器之间跳转,还要面对根本没用的文档,
00:02:46而在这里,工具将这些碎片整合在一起。
00:02:52现在我可以点击引导式导览,它会按顺序展示整个流程。
00:02:56入口点、验证、逻辑、数据库、外部 API、错误处理。
00:03:01这已经非常实用了。
00:03:07这个引导导览将一切拆解得清清楚楚。
00:03:09我们可以深入其中,访问不同的组件。
00:03:11这就是区别所在,”嘿,这是一个很酷的图表,我确实会
00:03:14在动生产环境代码前检查它。”
00:03:18但现在,显而易见的问题是,难道我们没有类似的工具吗?
00:03:20作为开发者,我们并不真正需要更多华而不实的仪表盘。
00:03:25我们需要减少浪费的时间,而这个工具解决的是软件开发中最大的时间杀手之一。
00:03:29获取上下文,对吧?
00:03:35这一切是怎么连接起来的?
00:03:37它有什么用?
00:03:38人们正在大型项目、遗留 Java 单体、微服务代码库、数百个文件上测试它,
00:03:39而反应就像我刚才展示的那样。
00:03:45如果我有这个,能帮我节省入职前两周的时间,因为它把一切都拆解了,
00:03:48它连接了一切,并展示了它们是如何交织在一起的。
00:03:53这是第一个真正重大的用例:入职培训。
00:03:56所以,与其说 “读这 12 页文档,有问题到处问人”,这已经很让人困惑了,
00:03:58我们现在可以说,”打开图谱,查看导览,然后我们可以问更好的问题。”
00:04:03现在,第二个非常好的用例是 AI 智能体,因为大多数 AI 编码工具的能力
00:04:08仅限于我们提供的上下文。
00:04:09如果智能体只看到三个文件,它只能瞎猜。
00:04:14如果它拥有包含领域、流程、依赖和实际解释的结构化系统地图,
00:04:17它就有更大的机会在第一时间做出正确的更改。
00:04:20当然还有重构,对吧?
00:04:27在触碰代码之前,我们现在可以问:”这段代码依赖什么?
00:04:30当然,还有重构,对吧?
00:04:32在动代码之前,我们现在可以问:“这段代码依赖什么?
00:04:36这就是你如何避免把一行代码的更改变成一场大灾难的方法。
00:04:38这就是开发者对这个项目感到非常兴奋的真正原因。
00:04:40不是因为我们关心图表,我喜欢图表,它们很酷、很有用,我是视觉型的人,
00:04:44但我们讨厌迷失方向。
00:04:48现在,我们需要小心,因为开发者以前见过代码可视化工具。
00:04:51IDE 图表、Sourcegraph 式的导航、NX 图表、Tree-sitter 可视化工具,很多
00:04:55工具都有同一个问题。
00:05:00它们做了什么?它们展示了结构,但没有解释实际含义。
00:05:05它们告诉你这个文件引用了那个文件,很好,但为什么?
00:05:09这属于什么流程的一部分?
00:05:10请求从哪里开始?如果我更改它,什么会坏掉?
00:05:13那是缺失的一层。
00:05:18Understand Anything 试图补充这一层。
00:05:19它不仅仅显示 TypeScript 文件或其他什么,它试图转变成更接近实际事物运行流程的东西。
00:05:20这是这里的大事。
00:05:22从文件到含义,从引用到系统行为,从 “这是碎片” 到 “这是机器如何工作”。
00:05:24与许多 LLM 或 RAG 代码工具相比,它也更具视觉效果且更具教学意义。
00:05:27它不再仅仅显示为一个 TypeScript 文件或其他什么东西,而是试图将其转化为
00:05:31你问一个问题,得到一个答案。
00:05:35这为你提供了一个全面的拆解,帮助我们了解一切走向何方,
00:05:37交织在一起的是什么,是如何连接的,同时让我们能够实际查看代码。
00:05:42现在谈谈人们真正喜欢什么。
00:05:43显而易见的赢点是入职培训。
00:05:48如果你加入一个大型代码库,这给你提供了一个良好的起点。
00:05:52你问一个问题,就能得到一个答案。
00:05:54但这能为你提供全面的剖析,帮助我们理解代码的流向、
00:06:00你可以从系统层面开始,然后深入到模块和实现细节。
00:06:04变更影响分析是另一个大点。
00:06:05每个经验丰富的开发者都知道,在不真正理解的代码库中做微小更改的恐惧。
00:06:07对于 Claude Code 用户,这个图谱也可以成为更好的上下文,所以与其把随机文件塞进提示词,
00:06:12不如给智能体提供结构化的架构知识。
00:06:13它也是免费的、MIT 开源的、增量的,并且设计用于跨多种开发环境工作。
00:06:15现在从怀疑的角度来看,当一个项目爆炸式增长时,我们开始问一个问题,
00:06:20它真的有用,还是只是赢得了 GitHub 算法?
00:06:21这是一个很好的问题。
00:06:23还有 LLM 依赖问题,这意味着 Token 成本。
00:06:27这在 Token 成本上爆炸了。
00:06:29所以它花了一些时间,消耗了大量 Token。
00:06:34如果你打算使用它,请确保你有一个好的订阅计划。
00:06:39它还是免费且采用 MIT 许可的,支持增量处理,并可在多种开发环境中使用。
00:06:45现在从质疑的角度来看,当一个项目发展得如此迅速时,我们开始产生疑问,
00:06:49这真的有用,还是说它只是利用了 GitHub 的算法优势?
00:06:53它只是帮你更好地理解一切走向何方。
00:06:55如果你喜欢这样的编程工具和技巧,请务必订阅 Better Stack 频道。
00:06:59我们下个视频再见。
00:07:02所以它花了一些时间,也消耗了大量的代币。
00:07:05如果你打算使用它,请务必做好充分的规划。
00:07:08你依然需要良好的判断力。
00:07:09它只是为你提供了一个概览。
00:07:11它并不能替代阅读代码的过程。
00:07:13它只是帮你更好地理解代码的逻辑走向。
00:07:16如果你喜欢这类编码工具和技巧,请务必订阅 Better Stack 频道。
00:07:20我们下期视频再见。

Key Takeaway

Understand Anything 通过将代码库转化为具备业务流程逻辑的交互式知识图谱,显著降低了开发者理解遗留项目及进行变更影响分析的时间成本。

Highlights

  • Understand Anything 在几周内于 GitHub 获得超过 14,000 个星标。

  • 该工具结合静态分析与多智能体大语言模型,将代码库转化为交互式知识图谱。

  • 完整扫描中等规模项目大约需要 30 分钟,且会消耗大量 Token。

  • 该工具通过展示代码流程、依赖关系及业务逻辑,解决传统文档过时或缺失的问题。

  • Understand Anything 支持作为 Claude Code 插件使用,并可适配 Cursor、Copilot 和 Gemini CLI 工作流。

Timeline

代码库理解的困境与 Understand Anything

  • 开发者面对大型遗留代码库时通常依赖 grep 或过时的文档,效率低下。
  • Understand Anything 旨在提供一张展示流程、架构、变更与影响的交互式代码地图。

新加入团队或面对缺乏维护的遗留系统时,开发者往往无法快速获取上下文。现有的辅助手段如人工查询或通用的 AI 助手往往无法准确还原代码库的逻辑全貌,而该工具正是为了填补这一空白。

功能实现与运行成本

  • Understand Anything 利用静态分析与多智能体 LLM 提取结构、关系及业务概念。
  • 使用该工具需要较高的 Token 额度,扫描中等规模项目耗时约 30 分钟。
  • 生成的仪表盘支持可视化浏览架构细节及关联代码。

安装插件后,工具通过命令扫描项目并启动仪表盘。用户可以通过高层架构视图缩小范围,或放大查看具体模块的关联逻辑。由于运行过程涉及大量的 LLM 处理,用户需配备充足的 API 配额或订阅计划。

核心应用场景与价值

  • 该工具显著缩短新员工入职培训时间,通过引导式导览快速拆解系统逻辑。
  • 为 AI 智能体提供结构化的上下文,提升代码修改的准确性。
  • 通过分析代码依赖关系,帮助开发者在重构前预判潜在的风险。

相比于阅读文档,工具提供的交互式导览能展示入口点、验证、逻辑、数据库及 API 调用等完整流程。它不仅显示文件引用,还解释了系统行为,使 AI 编码助手能够基于架构知识而非局部碎片进行预测。

可视化深度与局限性

  • 该工具超越了简单的结构可视化,重点在于解释实际的业务流程与系统行为。
  • 它不能完全替代代码阅读,仅作为理解逻辑走向的辅助概览工具。
  • 该项目采用 MIT 开源协议,并设计为跨开发环境的增量式工具。

许多传统可视化工具仅能展示文件引用关系,而该工具通过补充含义层级来揭示机器如何工作。用户在使用时应保持判断力,意识到其核心价值在于降低获取全局上下文的难度,而非彻底取代对代码细节的审查。

Community Posts

No posts yet. Be the first to write about this video!

Write about this video