junkdog/sift: 从.class逆向建模和分析系统设计的工具


用来来快速可视化主要后端系统的设计;我发现它对于探索新代码库、查找可能的数据流、快速可视化应用程序的各个部分、总结端点等非常有用。

Sift 是一个命令行工具,用于从 JVM 字节码建模和分析软件系统的设计。它通过使用称为系统模型模板的预定义模板处理 .class 或 .jar 文件来运行。这些模板提供了有关技术栈或项目特定结构的知识,使该工具能够生成系统的综合模型。

生成的系统模型由描述系统结构和行为的实体组成。使用 Graphviz 呈现的树或图形。如果 kitty 是选择的终端,图形将直接呈现到终端。

它包括用于分析使用 spring-boot、axon、JPA 等构建的应用程序的模板。可以使用提供的声明性 DSL 创建用于使用不同技术的其他模板。

特征

  • 用于从解析的 .class 文件构建、查询和比较系统模型的 CLI 工具。
  • 用于编写用户定义模板的声明式 DSL,可选择扩展或组合现有模板。
  • 模板的 JSON 序列化,便于重用和共享。
  • 使用 Graphviz 渲染系统表示。通过 sift.sh|zsh 支持kitty的内联渲染。
  • 可选择使用 GraalVM 的本机映像构建为本机二进制文件,从而实现更快的执行时间。这意味着 Sift 通常可以在 0.5 秒内分析大多数微服务规模的项目。


详细点击标题