图表和可视化¶
在DI-engine中,我们经常需要绘制图像并测量和可视化一些信息。本节将详细介绍这些内容。
PlantUML¶
PlantUML 是一个可以用来绘制UML和其他图像的工具。详情请参考 PlantUML的官方网站。它最大的特点是基于代码,不需要关注排版,并且非常易于维护。
例如,我们可以绘制类图
你可以绘制算法的流程图
YAML 数据也可以被绘制
我们可以使用plantumlcli工具来生成图像。详情请参考plantumlcli GitHub仓库。
注意
在DI-engine的文档中,已经集成了plantuml,可以根据源代码自动生成图像。例如,我们可以在当前路径下创建文件plantuml-demo.puml。
1@startuml
2Alice -> Bob: Authentication Request
3Bob --> Alice: Authentication Response
4
5Alice -> Bob: Another authentication Request
6Alice <-- Bob: Another authentication Response
7@enduml
在编译文档时,SVG格式的图像plantuml-demo.puml.svg也会自动生成,如下所示。
graphviz¶
对于更复杂的拓扑图,我们可以使用工具Graphviz来绘制:
例如,我们可以使用graphviz快速绘制一个图结构,如下代码所示
1digraph G {
2 start -> a [label="3"];
3 start -> d [label="2"];
4
5 a -> b [label="1"];
6 b -> c [label="2"];
7 d -> c [label="3"];
8
9 a -> end [label="5"];
10 c -> end [label="3"];
11}
绘制的图像如下所示
draw.io¶
draw.io 是一个非常简单易用的在线图像编辑工具,可以用来编辑工作流程图、BPM、组织结构图、UML图、ER图、网络拓扑图等:
draw.io的最大特点是拖拽绘图方式,因此可以实现“所见即所得”。
snakeviz¶
当我们需要测量程序或程序某部分的速度时,我们可以使用原生的cProfile,而sneakviz可以以可视化的形式显示速度测量结果: