標準Go專案布局

2021-10-24 09:45:32 字數 1532 閱讀 4306

了解 standard go project layout,順便了解下 k8s 的 layout。

平時工作也會看k8s**,但是說實話對了k8s的目錄設計不是很明白,不是特別明白每個目錄檔案下面存放什麼內容,最近看了kubernetes原始碼剖析,才了解到 standard go project layout。

官網介紹:

kubernetes原始碼版本:master分支,應該算1.20

/api:openapi/swagger 規範,json 模式檔案,協議定義檔案。

/build:打包和持續整合,存放構建相關檔案。

/changelog:存放每個版本的變動(.md格式)。

/cluster:存放一些腳步和yaml資訊,該目錄將會被棄用,已經進入維護模式,不會接受新的providers。

/cmd:本專案的主幹,存放可執行檔案的入口**,不會在這個目錄放太多的**,每個可執行檔案都會對應乙個 main 函式。

/docs:設計和使用者文件。

/hack:存放與構建、測試等相關的指令碼。

/licenses:證書資訊。

/logo:logo。

/pkg:核心庫**,可被專案內或外部直接使用。

/plugin:存放k8s外掛程式目錄,例如准入、認證、授權

/staging:此目錄是已拆分到各自庫。這裡的內容將定期發布給各自k8s.io庫。存放部門核心庫的暫存目錄。

/test:測試工具以及測試資料。

/third_party:第三方工具、**或指令碼。

/translations:存放國際化語言包相關檔案。

/vendor:存放專案依賴的庫**,第三方庫**。

本文簡單介紹了standard go project layout,以及kubernetes的layout設計。

參考kubernetes原始碼剖析

standard go project layout 官網介紹

Go標準命令

1.bug 在瀏覽器中開啟github的golang專案,可以提交bug報告。go bug 2.build 編譯專案和檔案 交叉編譯 cgo enabled 0 goos darwin goarch amd64 go build o demo.darwin.amd64 cgo enabled 0 g...

go記憶體布局

計算機 1byte 8bit utf8 格式 1個英文本元是1byte,1個數字是1byte 0 9 這個是相對於字元編碼來說的 而 裡的資料型別不同 go資料型別 int int64 用64位bit表示乙個int也就是8個位元組byte,int的取值範圍為 2的31次方到2的31次方 21 474...

Go標準容器之List

go的標準包container中包含了常用的容器型別,包括conatiner list,container heap,container ring。本篇介紹conatiner list。conatiner list實現了乙個雙向鍊錶。使用起來與其他語言的動態列表非常相似,3秒鐘便可入門。packag...