Show HN: Arcaide – 使用多级调用图探索代码

Hacker News Top 工具

摘要

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>
查看原文

相似文章

colbymchenry/codegraph

GitHub Trending (daily)

CodeGraph 是一个开源工具,为代码库创建预索引的知识图谱,使 Claude Code 的探索代理能够即时查询符号关系和调用图,将工具调用次数减少高达 96%,探索时间减少 77%。