概念
架构图即代码
PlantUML is a open-source tool that allows to quickly write :
- Sequence diagram,
- Usecase diagram,
- Class diagram,
- Activity diagram, (here is the new syntax),
- Component diagram,
- State diagram,
- Deployment diagram,
- Object diagram.
- wireframe graphical interface
效果
在hexo博客加上plantuml插件
install
1 | npm install hexo-tag-plantuml --save |
add to _config.yml
And add this plugin in _config.yml.1
2plugins:
- hexo-tag-plantuml
test
add text to markdown file
1 | {% plantuml %} |
test
1 | hexo clean && hexo generate && hexo server |
效果
公司内网搭建plantuml服务
虽然http://plantuml.com/提供了online server,但是由于信息安全问题,不能直接把代码贴到那生成图片,所以需要自己在内网建一个.
选型
其实也没啥选的,由于linux机器都被回收,只有自己用的windows办公机,所以只能用windows了。
前端用bootstrap+angularjs,好吧,我承认我是前端小白,其实我就只会这哥俩
后端就用go的gin框架,原因就是之前用gin写了个玩具,基本可以复用
准备工作
- plantuml需要jdk
- 下载plantuml.jar,进入http://plantuml.com/download.html,下载last version,http://sourceforge.net/projects/plantuml/files/plantuml.jar/download
- 由于plantuml在生成图片时会用到graphviz,也需要一并下载并安装http://www.graphviz.org/Download_windows.php
- plantuml会调用graphviz的dot.exe,所以需要增加环境变量GRAPHVIZ_DOT,值就是dot.exe的全路径
java -jar plantuml.jar -testdot
,如果返回OK,那么说明安装成功
实现过程
启动plantuml
1 | java -jar plantuml.jar |
会监控当前目录,如果有.txt等文件
的变更,就会生成同名的png
时序图
期间有个比较蛋疼的事,由于golang的string是UTF8,保存到文件也是UTF8,plantuml不识别,总提示语法错误。解决方法:
- 参考http://mengqi.info/html/2015/201507071345-using-golang-to-convert-text-between-gbk-and-utf-8.html
- 将string转换成gbk的bytes,然后写入到文件
炫耀
花了3个小时搞定,就推荐给周围同事,得到一致好评,大家都可以抛弃visio等图形化工具了。
通过markdown实现了设计文档即代码
那么通过plantuml实现了架构图即代码
文本化,可以版本管理
本博客欢迎转发,但请保留原作者信息
github:codejuan
博客地址:http://blog.decbug.com/