cassandra可视化工具_程序员绘图工具——PlantUML
在工作中經常會編寫技術文檔,用專業的圖形(用例圖、時序圖、ER圖等等)能夠更加準確表達我們的想法,別一段乏味的文字更加有意義,也便于別人理解。
雖然現在有很多類似viso之類的可視化畫圖工具,但是還是需要花費大量時間在拖拉組件上,效率十分低下。業內主流的繪制UML語言,都用的工具Visio、StartUML、PlantUML。我們選擇PlantUML:http://plantuml.com/,在vscode、webstorm都有相關的插件可以使用。
1. 選擇PlantUML的原因
PlantUML是開源的,有一個相對比較成熟的網站,通過簡單的UML語言來實現想要的效果,有點極客范;
PlantUML有比較詳細的各類語言的guide文檔;
PlantUML做了很多的適配,比如常用的編譯器eclipse,IDEA intellij都有對應的插件,同時還和Maven和JQuery都做了集成,還提供了war包形式,可以在本地的JavaEE容器(比如Tomcat)中運行起來;
PlantUML語言簡單直接易學,就好像Markdown語法一樣,簡單高效。
2. UML語言介紹
簡而言之,UML語言是一種面向對象的模型語言,通過UML語言的組合來表達某些事物之間的邏輯關系。
詳細概念請參見https://www.w3cschool.cn/uml_tutorial/uml_tutorial-c1gf28pd.html
3. PlantUML語言參考文檔
HTML版本:http://plantuml.com/zh/
pdf版本:https://pan.baidu.com/s/1Eq68CaSmqw3vo5972macNA ,提取碼:g1f2
4. PlantUML語言編寫環境
目前官方網站給出了好多種的環境搭建方式,下面著重介紹四種
在線通過PlantUML語言繪制對應的UML圖,plantUML官網提供了免費的在線編輯服務,通過在左側輸入對應的UML語言來生成對應的UML圖,地址如下:http://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
通過本地的JavaEE容器啟動plantUML.war?下載Java J2EE WAR File(plantuml.war),將其放在本地的Tomcat的webapps目錄下,啟動后然后訪問http://localost:8080/plantuml,就可以看到如下圖所示畫面,左側編寫PlantUML語言的代碼,下面是效果圖plantuml.war下載地址:https://sourceforge.net/projects/plantuml/files/plantuml.war/download
使用IDEA intelliJ插件繪制 使用之前請安裝PlantUML integration插件,然后就可以愉快的書寫UML語言,右側會生成對應的預覽圖片,可以復制或保存生成的圖片到指定的目錄
使用SpringBoot集成plantUMLpom.xml中添加如下依賴,更多關于PlantUML api的使用請參見具體的官方文檔。參考資料2是一個簡單的demo。
5. 下面是引用標準庫生成的一個邏輯圖
PlantUML語言如下
!include
!include
!include
!include
title Cloudinsight sprites example
skinparam monochrome true
rectangle "\nwebapp" as webapp
queue "" as kafka
rectangle "\ndaemon" as daemon
database "" as cassandra
webapp -> kafka
kafka -> daemon
daemon --> cassandra
@enduml
效果圖:
6. 參考資料
PlantUML官網(http://plantuml.com)
SpringBoot+PlantUML(https://github.com/joelbinn/plant-uml-springboot-server)
7. 時序圖
時序圖相對來說是比較經常畫的一種設計圖稿,在這里記錄一下plantuml中相關的語法。
基本用法
@startumlA -> B: do something
B -> A: do something
@enduml
設置不同的角色
時序圖角色可以分為:actor、boundary、control、entity、database、collections,每種角色呈現的圖形也是不一樣的。
@startumlactor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
collections Foo6
Foo1 -> Foo2: to boundary
Foo1 -> Foo3: to control
Foo1 -> Foo4: to entity
Foo1 -> Foo5: to database
Foo1 -> Foo6: to collections
@enduml
不同箭頭樣式
@startumlBob ->x Alice
Bob -> Alice
Bob --> Alice
Bob ->> Alice
Bob -\ Alice
Bob \- Alice
Bob //-- Alice
Bob ->o Alice
Bob o\-- Alice
Bob Alice
Bob o Alice
Bob -[#red]> Alice : hello
Alice -[#0000FF]->Bob : ok
@enduml
分頁
@startumlAlice -> Bob : message 1
Alice -> Bob : message 2
newpage
Alice -> Bob : message 3
Alice -> Bob : message 4
newpage A title for the\nlast page
Alice -> Bob : message 5
Alice -> Bob : message 6
@enduml
分段
@startuml== Initialization ==
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
== Repetition ==
Alice -> Bob: Another authentication Request
Alice @enduml
生命線
@startumlparticipant User
User -> A: DoWork
activate A #FFBBBB
A -> A: Internal call
activate A #DarkSalmon
A -> B: << createRequest >>
activate B
B --> A: RequestCreated
deactivate B
deactivate A
A -> User: Done
deactivate A
@enduml
圖例注腳等
@startumlheader Page Header
footer Page %page% of %lastpage%
title Example Title
Alice -> Bob : message 1
note left: this is a first note
Alice -> Bob : message 2
@enduml
C4架構圖
C4 model是一種軟件架構圖的設計方法,具體介紹可以參考C4 architecture model。利用C4-PlantUML工具,可以畫出很多很不錯的架構圖。
C4模型分為Context, Container, Component和Code 4個組成部分,我們一般在畫圖的時候主要用到前三個組成部分。
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Context.puml
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Container.puml
!includeurl https://raw.githubusercontent.com/RicardoNiepel/C4-PlantUML/master/C4_Component.puml
System(systemAlias, "System", "這可以看作系統上下文(Context)")
Container(containerAlias, "Container", "這是Container")
Person(personAlias, "Person", "這可以看作是組件(Component)")
Rel(personAlias, containerAlias, "Label", "設置關聯關系")
@enduml
例子
@startumlautonumber
hide footbox
title **Node 應用研發部署流程**
actor "開發者" as user
participant "代碼倉庫(GitLab)" as gitlab
participant "持續集成系統" as ci
participant "運維發布系統" as sys #orange
participant "服務器" as server
== 研發流程 ==
user -> gitlab: 提交代碼
activate user
deactivate user
activate gitlab
gitlab -> ci: 單元測試
deactivate gitlab
activate ci
note right of ci: tar 或 docker
ci -> ci: 打包
ci -> sys: 推送
note right of sys: 存儲到 oss
activate sys #orange
deactivate ci
deactivate sys
…
== 上線/回滾流程 ==
user -> sys: 選擇要上線的版本
activate sys #orange
activate user
deactivate user
sys -> server: 推送
activate server
note right of server: 無需--安裝依賴--,快速且確定
server -> server: 解壓
server -> server: 啟動
server --> sys
@enduml
參考原文:?https://www.jianshu.com/p/30f6a9c06083
各位程序員大佬們,請讓我聽到你們的聲音!不管你是前端開發、后端研發、測試開發、移動端開發、全棧工程師、運維工程師、網絡工程師、架構師、研發經理還是其他職位,不管你在做Android開發 、iOS開發、U3D 、COCOS2DX、 自動化測試、功能測試、性能測試、白盒測試、灰盒測試、黑盒測試、ETL、數據倉庫、數據開發、數據挖掘、數據分析、數據架構、算法研究、精準推薦、分布式、系統集成、地圖引擎、人工智能、大數據、深度學習、機器學習、圖像處理、圖像識別、語音識別、語音學習、機器視覺、自然語言處理、視頻開發、區塊鏈還是其它技術支持。歡迎在評論中踴躍發表意見!
掃碼關注我們
極牛科技公眾號
微信號 : jnkjnl
博客:niuzhendong.com
Github:github.com/niuzhendonglm
點個贊再走嘛!
總結
以上是生活随笔為你收集整理的cassandra可视化工具_程序员绘图工具——PlantUML的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 指针_指针篇 | 指针的灵
- 下一篇: 以列表形式输出_python格式化输出总