Spaghetti: 用于分析 Go 包依赖关系的工具
Spaghetti 是一款基于 Web 的交互式工具,可帮助您了解 Go 程序的依赖关系,并探索和评估消除依赖关系的各种可能方案。它显示了初始包的完整依赖关系,按照包/模块命名空间的目录结构组织成树状结构。
点击包节点可显示有关该节点的信息,包括从初始包之一到该节点的任意路径。路径中的每条边可能"断开",导致其从图形中移除,并重新计算视图。断开的边会被列表化,如果您改变主意或尝试其他方法,每条边都可以恢复。通过这种方式,您可以探索在删除特定导入项的过程中,整体依赖关系会如何变化。一旦对整体依赖关系感到满意,断开的边集合就成为清理项目的任务列表。
其中 package 可以是一个或多个 Go 包,也可以是 go list 所理解的模式。然后,请在浏览器中打开不安全的单用户 Web 服务器,地址为 localhost:18080。这个工具是我在 Google 期间编写的一个工具的重写,用于探索 Blaze 构建系统使用的依赖图。基本设计可以轻松地泛化,支持任何类型的依赖图,无论语言或领域如何,或者将其转换为一个安全的多用户 Web 服务,该服务基于来自客户端程序生成的图数据进行操作。
暂无开放 Issues,或尚未同步最近议题。