gpt4 book ai didi

PlantUML 基本示例

转载 作者:行者123 更新时间:2023-12-04 00:51:38 29 4
gpt4 key购买 nike

我正在评估 PlantUML 是否可以替代 GraphViz。

它被宣传为“直观”,但老实说,主页上的第一个示例已经令人困惑。

为什么下面会创建两次“Bob”和“Alice”?我在文本中看到 2 个节点,在输出中看到 4 个节点。此外,箭头不在节点之间,而是在节点重复之间的关系之间。

Bob->Alice : hello

enter image description here

这对我来说是零意义。这个例子的含义是什么?还有一个更简单的例子,只有 2 个节点和它们之间的箭头?

最佳答案

我看你中了“手册的第一页不代表工具”的经典陷阱(1)

除了各种UML图(如您遇到的序列图),PlantUML还支持各种其他软件开发相关格式(如、框图、、计算机网络图、图表、思维导图、和 ),以及 文件的可视化。

其实它甚至可以理解 Graphviz 语法!(2)

由于所有这些,只有在您一些 PlantUML 的基本知识之后,“直觉”才会发生。

所以回到你的问题......你所看到的并不是你想象的那样。

是什么

将事物与 Graphviz 联系起来,而不是这样:

digraph d {
Bob -> Alice : hello
}

您实际上看到的是:(3)

@startuml
digraph sequenceDiagramExample {
bobHead [ label="Bob" pos="0,1.5!" shape="record" ];
bobPoint0 [ pos="0,0.75!" shape="point" width="0" ]
bobFoot [ label="Bob" pos="0,0!" shape="record" ];
aliceHead [ label="Alice" pos="1,1.5!" shape="record" ];
alicePoint0 [ pos="1,0.75!" shape="point" width="0" ]
aliceFoot [ label="Alice" pos="1,0!" shape="record" ];
bobHead -> bobPoint0 -> bobFoot [ dir="none" style="dashed" ]
aliceHead -> alicePoint0 -> aliceFoot [ dir="none" style="dashed" ]
bobPoint0 -> alicePoint0 [ label="hello" labelloc="c" style="solid" ]
}
@enduml

举个例子!

只有两个节点和它们之间的箭头的示例是什么样的取决于选择的图形类型...

您必须记住的是,使用 Graphviz,您必须自己将所有含义应用于图表。对于PlantUML,含义由PlantUML 为您提供。您需要做的就是告诉 PlantUML 您的意思。

使用一些基本指针,这很快就会变得直观。您只需要在开始之前知道要绘制什么样的图表...

从下面的示例中您可以看到,PlantUML 是一个非常强大的工具,可以添加到您的软件开发人员工具带中。

我希望这些示例有助于让事情变得更直观,并且您的第一个错误不会阻止您进一步探索 PlantUML!

事件

@startuml
:Alice;
:Bob;
@enduml

存档

@startuml
archimate #Application Alice
archimate #Business Bob
Alice -> Bob
@enduml

@startuml
Alice -|> Bob: Hello
@enduml

组件

@startuml
[Alice] -> [Bob]: Hello
@enduml

部署

@startuml
folder Alice
file Bob
Alice -> Bob: Hello
@enduml

迪塔

@startuml
ditaa

+-------+ +-----+
| | hello | |
| Alice +------>| Bob |
| | | |
+-------+ +-----+
@enduml

甘特图

@startgantt
[Alice]->[Bob]
@endgantt

JSON

@startjson
{
"Alice": ["Bob"]
}
@endjson

思维导图

@startmindmap
+ Alice
++ Bob
@endmindmap

网络

@startuml
nwdiag {
network hello {
Alice;
Bob;
}
}
@enduml

对象

@startuml
object Alice
object Bob
Alice -> Bob
@enduml

序列

@startuml
Bob -> Alice : hello
@enduml

状态

@startuml
[*] -> Alice
Alice -> Bob: hello
Bob -> [*]
@enduml

时间

@startuml
concise Hello
0 is Alice
+100 is Bob
@enduml

用例

@startuml
:Alice: -> :Bob: : Hello
@enduml

工作分解结构

@startwbs
+ Alice
++ Bob
@endwbs

脚注

  1. 真的不是经典,我只是编造的。但这是经常发生的事情。
  2. 在此处引用手册:https://plantuml.com/dot
  3. neato not dot 中渲染,见 https://stackoverflow.com/a/53470455/153049

关于PlantUML 基本示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65967752/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com