Show HN: Arcaide – 使用多级调用图探索代码
摘要
Arcaide 是一款可构建多级调用图的工具,它结合结构分析与行为分析,帮助开发者探索和理解代码库,并利用 LLM 增强图形、剔除琐碎工具。
<p>当我接触一个新的代码库时,通常会做的事情是找到入口点,然后沿着调用路径往下探索。这能让你对代码中的不同组件及其连接方式有一个很好的概览。我想将这种体验转化为可视化形式,类似于使用调用图的方式,但经典的调用图存在几个问题。其一,调用图在函数级别表示流程,因此架构层面的上下文会丢失。其二,调用图往往变得非常庞大,并且可能随着程序规模呈指数级增长。</p><p>我正在探索的方法是构建“多级”调用图。这些调用图以程序结构的形式呈现,不仅展示函数级别的控制流,还向上聚合到类和包等更高级别的单元。这使你能够放大和缩小,从不同抽象层级查看代码,类似 C4 模型图,从而可以通过展开你关心的区域、折叠其余部分来导航大型图。</p><p>然后,该图被输入到 LLM 进行语义分析。这完成两件事:检测遥测和琐碎工具,将它们从图中剔除以进一步精简;识别外部接口和依赖关系以丰富图。最终得到一个同时包含结构和行为方面的单一图。你可以看到包级别依赖、类组成和关系,以及外部服务、数据库和用户交互。可以把它想象成将包图、类图和用例图合并成一个复合图。</p><p>当然,源代码始终是王道。阅读代码以了解具体细节无可替代。但地图并不能取代地形,它只是告诉你在哪里行走。随着我们从逐行手写代码转向编排生成所有代码的智能体,维护“大局观”变得越发重要。我们需要更好的地图来帮助我们在代码地形中导航。</p><p>不过,我很想听听你的想法。请查看链接 [1] 中的一些示例图并分享你的反馈。同时也欢迎你对程序理解的一般性看法!</p><p>[1] 链接: <a href="https://arcaide.foo" rel="nofollow">https://arcaide.foo</a></p>
相似文章
Show HN:有没有人对一个探索C++ AST的工具感兴趣?
ACAV是一个交互式抽象语法树可视化工具,适用于C、C++和Objective-C,基于Clang和Qt构建,允许开发者通过编译数据库从真实代码库中探索AST。
Show HN: Mindwalk – 在代码库的3D地图上回放编码智能体会话
Mindwalk 是一款开源可视化工具,可在代码库的3D地图上回放编码智能体会话,支持 Claude Code 和 Codex 会话日志,并配备本地 Go 服务器和 React/Three.js 前端。
@CodeUnderstand:从 UML 图到实时代码再到可扩展的调用图……一气呵成,无需翻文件
SciTools 的 Understand 新增交互式 UML、控制流与调用图视图,让开发者无需翻文件即可畅游代码。
Understand Anything – 用图来讲解代码库
Understand Anything 是一款AI驱动的工具,能从代码库生成交互式知识图谱,展示结构、依赖关系和业务逻辑,帮助开发者理解代码。
colbymchenry/codegraph
CodeGraph 是一个开源工具,为代码库创建预索引的知识图谱,使 Claude Code 的探索代理能够即时查询符号关系和调用图,将工具调用次数减少高达 96%,探索时间减少 77%。