代码类图查看

目的:解决复杂项目中,代码类、接口的关系图谱;

原理(java\php\c++\golang等面向对象语言都可以):

  • 分析项目代码,生成UML 图;
  • 通过工具展示uml 图;

具体操作(以golang 为例):

1. 安装分析工具:go-package-plantuml

go get -u -v git.oschina.net/jscode/go-package-plantuml

2. 生成源码的UML 文件:

./go-package-plantuml --codedir /appdev/gopath/src/github.com/contiv/netplugin \
--gopath /appdev/gopath \
--outputfile  /tmp/result \
--ignoredir /appdev/gopath/src/github.com/contiv/netplugin/vendor

参数说明
--codedir 要分析的代码目录
--gopath GOPATH环境变量目录
--outputfile 分析结果保存到该文件
--ignoredir 不需要进行代码分析的目录(可以不用设置)

3. 安装展示工具(目的就是把planUML展示):

  • 方案1:直接在线工具展示。 地址: https://plantuml.com/zh/class-diagram
    优点:无依赖,可以快速查看;
    缺点:对于比较复杂的uml 展示效果可能不太好
  • 方案2: 通过java 程序渲染文件。plantuml.jar
    优点:可以生成svg, 高清图;
    缺点:依赖较多,使用麻烦;
java -jar plantuml.jar /tmp/text.uml -tsvg
注意:
1. 下载安装 plantuml https://nchc.dl.sourceforge.net/project/plantuml/plantuml.jar
2. 下载安装 java sdk
  • 方案3:通过goland plugin 展示;
    优点:安装方便,可以随时编辑和预览文件,也可以查看svg图;
    • 插件库,安装plantUML 插件(或则去goland 官网安装)
    • 打开uml 文件,直接在plantUML 面板中查看即可(可以右击,选择svg 打开)

补充说明:

  1. 项目代码结构扁平,出来的图谱比较密集,查看效果不好,
    不过可以通过调整UML 中的布局方式,让布局合理点;
  2. omnigraffle可以查看和拖动对象,盗版软件 https://macwk.com/soft/omnigraffle
  3. 查看代码运行时的工具。https://github.com/ofabry/go-callvis
WRITTEN BY:    陈贞

个人博客