項目分析工具

1.go-callvis

1.1 簡介

go-callvis 是一個能夠將調用關係可視化展示出來的項目輔助工具,其目的是通過使用來自函數調用關係圖的數據及其與包和類型的關係來對程序進行可視概覽。 這在閱讀/試圖理解別人的代碼結構,或在代碼複雜性增加的大型項目中特別有用。

1.2 特性

關注程序中的特定包
按包區分組函數和按類型區分方法
將包限制到自定義路徑前綴
忽略包含路徑前綴的包
省略來自/到std包的調用
項目地址
https://truefurby.github.io/go-callvis/

1.3 使用

https://github.com/TrueFurby/go-callvis/tree/master/examples

https://github.com/TrueFurby/go-callvis/wiki/Focusing-packages

1.4 注意事項

例如,以orchestrator項目爲例,其代碼已經下載到本地,其中

github.com/github/orchestrator/是orchestrator項目在本地的路徑,這裏路徑使用相對路徑(即src目錄下的項目所在路徑)。
$ go-callvis github.com/github/orchestrator/go/cmd/orchestrator

如果沒有focus標識,默認是main

例如,查看github.com/github/orchestrator/go/http 這個package下面的調用關係:

$ go-callvis -focus github.com/github/orchestrator/go/http github.com/github/orchestrator/go/cmd/orchestrator

下面使用dot將調用關係圖存放在newbi.png中,需要安裝graphviz,可以通過homebrew安裝:運行 brew install graphviz

$ go-callvis -focus newbi_datamodel/databases/impala newbi_datamodel/cmd/http | dot -Tpng -o newbi.png

2.goreporter

2.1 簡介

goreporter是一個能夠靜態分析、單元測試、代碼審查和生成代碼質量報告的Golang工具。生成的報告是一個html網頁文件,包括項目評估得分、項目名稱、單元測試覆蓋率、package含有單元測試的覆蓋率、代碼可簡化提示、代碼冗餘以及高圈複雜度提示等。

2.2 參考

項目地址:
https://github.com/360EntSecGroup-Skylar/goreporter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章