godoc 命令和 golang 代碼文檔管理

介紹

  • godoc 是 golang 自帶的文檔查看器,更多的提供部署服務(wù)
  • go doc 和 godoc 在 golang 1.13 被移除了,可以自行安裝 golang.org go1.13 godoc
go get golang.org/x/tools/cmd/godoc
# 使用代理安裝
GOPROXY=https://mirrors.aliyun.com/goproxy/ GO111MODULE=on go get golang.org/x/tools/cmd/godoc
godoc
  • godoc 基礎(chǔ)使用
# 查看包內(nèi)的文檔,這里是查看 fmt 包中 Printf Println 的的文檔
godoc fmt Printf Println
# 查看文檔并包含源碼
godoc -src fmt Printf
# 查看的同時顯示示例代碼
godoc -ex fmt Printf
# 顯示文檔的web版本 http -> 端口
godoc -http=:6060
# 顯示 http 文檔并開啟本地索引
godoc -http=:6060 -index

要使用-index標記開啟搜索索引,這個索引會在服務(wù)器啟動時創(chuàng)建并維護。

否則無論在Web頁面還是命令行終端中提交查詢都會返回錯誤"Search index disabled: no results available"

如果不想提供如此多的結(jié)果條目,可以設(shè)置小一些的值

甚至,如果不想提供全文本搜索結(jié)果,可以將標記 -maxresults 的值設(shè)置為0,這樣服務(wù)器就只會創(chuàng)建標識符索引,而根本不會創(chuàng)建全文本搜索索引
標識符索引即為對程序?qū)嶓w(變量、常量、函數(shù)、結(jié)構(gòu)體和接口)名稱的索引

  • go doc 這個是golang語言自帶的文檔查看工具
# 文檔工具使用說明
go help doc
# 查看當前包的文檔索引
go doc
# 查看目標包的文檔索引
go doc [targetPackage]
# 查看目標包的某內(nèi)容的文檔索引
go doc [targetPackage].[函數(shù)名]
# 或者空格隔開也顯示某內(nèi)容的文檔
go doc [targetPackage] [函數(shù)名]
# 子包的文檔注釋
go doc [targetPackage]/[subpackage]

golang發(fā)布查詢代碼注釋文檔

發(fā)布文檔

godoc -http=:9090 -index

這樣就在本機使用 http://127.0.0.1:9090/pkg/ 查看發(fā)布的包
當然你可以使用 http://127.0.0.1:9090/pkg/github.com/github.com/sinlov/XXXServer/userbiz/ 來查詢自己代碼 包 github.com/sinlov/XXXServer/userbiz 下面的文檔

查詢發(fā)布文檔

通過 godoc -q 命令查詢發(fā)布文檔服務(wù),一般用于在另一個命令行終端甚至另一臺能夠與本機聯(lián)通的計算機中通過如下命令進行查詢

# 在本機用godoc命令啟動了Go文檔Web服務(wù)器,且IP地址為192.168.2.201、端口為9090
godoc -q -server="192.168.2.201:9090" Listener
  • 標記 -q 開啟了遠程查詢的功能
  • 標記 -server="192.168.2.201:9090" 則指明了遠程文檔服務(wù)器的IP地址和端口號

如果不指明遠程查詢服務(wù)器的地址,那么該命令會自行將地址 :6060golang.org 作為遠程查詢服務(wù)器的地址

這個地址 golang.org:6060 即是默認的本機文檔Web站點地址和官方的文檔Web站點地址

golang 代碼文檔管理

代碼文檔編寫

其實只要按 go 的標準注釋寫法編寫,就可以顯示代碼文檔了

比如 定義在 github.com/sinlov/XXXServer/userbiz 種有個文件 biz.go

// Biz implements a business
type Biz struct {
}

// business initialization
func (b *Biz) Init() {
}

注意 // 后面跟空格,才開始解析文檔

如果需要展示代碼需要 //后緊跟 [[:tab]] tab,那么 go doc 就會把這行當做代碼來看
可惜的是,go沒法自行在注釋里面添加使用鏈接,而是解析器跟蹤使用來生成鏈接

查看這個代碼的文檔命令就是 godoc github.com/sinlov/XXXServer/userbiz
查看某個函數(shù)的文檔,比如 Init 函數(shù) 就是 godoc github.com/sinlov/XXXServer/userbiz Init

代碼文檔導(dǎo)出

就使用上面文章中提到的 godoc -q -server= 指令,直接部署在服務(wù)器中就行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《火柴天堂》,一首屢屢被翻唱,但作者卻并不大紅大紫的好歌。 熊天平,一個聲線和張信哲很像的歌手。 作品不多,但精品...
    jiangshizhinu閱讀 718評論 0 1
  • 現(xiàn)在,大寶已經(jīng)早早入睡,二寶還在客廳里精力滿滿到處轉(zhuǎn)悠,妹妹現(xiàn)在語言表達能力不斷的在進步,簡單的幾個字話語都可以溝...
    星亮晨雨閱讀 141評論 0 0
  • 當我讀到張德芬老師的一篇文章《你情緒里的刺,是小時候藏起來的委屈》,被張德芬老師對自己情感問題的深刻剖析猛然驚醒,...
    陳麗麗_1825閱讀 374評論 0 0

友情鏈接更多精彩內(nèi)容