如何在 Neovim 啟用 PlantUML 的教學影片
常言道:「文不如表,表不如圖;一圖勝過千言萬語」。可知圖像給予人們的感覺,比文字乃至表格,更為強而有力。
UML (Unified Modeling Language,中文譯名:「統一塑模語言」),這套透過圖形規範,針對「軟體」塑形造模的方法論,自推出以來,廣被當作:描述系統/軟體架構,乃至軟體設計的工具。
以個人而言,我相信:「在軟體專案導入UML 圖,可協助我檢驗軟體設計的合理化,乃至在檢驗的過程中,察覺思考上的錯誤,乃至系統埋下了潛在的問題。個人好用的UML 圖為:循序圖及類別圖。我好使用循序圖來表達「功能細部設計」;而類別圖則用於描述軟體的 Domain Model 。在繪圖的過程,經常會發現原先未考量之事,所以程式碼在尚未動手撰寫前,便已先行「重構」和優化,避免了事後的重工,乃至除錯工作。」
雖說使用 UML 圖,對於軟體的開發有著諸多的好處。但也不得不承認,手工繪圖是件細鎖的煩人事。UML圖能為軟體開發人員帶來效益,但製圖過程卻費力耗時的反作用力,反而使人寧可放棄的問題,似乎被某些天賦異稟的軟體天才所發現,於是乎,這世界有了:PlantUML 的發明。PlantUML 的迷人之處在於:可用「文字敘述」描繪製作 UML 圖。
在 Neovim 眾多的 Plugins 中,plantuml-previewer.vim可供使用者在 Neovim 中「描繪」及「預覽」繪圖的成果。
-- PlantUML
use({ "weirongxu/plantuml-previewer.vim" })
-- PlantUML syntax highlighting
use({ "aklt/plantuml-syntax" })
-- provides support to mermaid syntax files (e.g. *.mmd, *.mermaid)
use({ "mracos/mermaid.vim" })
以下是個展示範例:在使用 Django 開發「部落格(Blog)」 的專案中。欲使用「循序圖(Sequence Diagram)」描述的「閱讀某則貼文」的功能規格。
閱讀貼文(Post)的文字描述
「描繪」此功能的循序圖,其「描述」文字如下:
@startuml
autonumber "[00]"
actor User
control Django.Router as Router
control Django.Template as Template
boundary post_detail as View
boundary CommentForm as Form
entity Post as Model
entity Comment as Comment
database database as DB
User -> Router : url: /blog/ (post_detail)
Router -> View : post_detail(request, year, month, day, post)
View -> Model : get_object_or_404(Post, slug=post, \n status='published', publish__year=year, \n publish__month=month, publish__day=day)
Model -> DB : sql_query()
DB --> Model : post
Model --> View : post
View -> Comment: post.comments.filter(active=True)
Comment --> View: comments
View -> Form: CommentForm()
Form --> View: form
View --> Template: render(request, \n uri_of_template, \n {post, comments, form})
Template --> User: /blog/post/list.html
@enduml
最後,在文章結束之前,提供以下一些參考資料。希望對想了解 PlantUML 多一點;或是「如何在 Neovim 導入 PlantUML 之人」,能有所助益!
閱讀貼文(Post)循序圖
根據以上「描述文字」,繪製而成的循序圖如下:
如何以 PlantUML 呈現 Domain Model 的教學影片
【參考文件】
【參考文件】
沒有留言:
張貼留言