golang開發目錄結構

hatlonely發表於2018-01-25

在實際的專案中發現大家的目錄結構都比較凌亂,基本每個人都有每個人的風格,一個專案在不斷地變大,一些新的檔案或目錄又不斷地被新增進來,從這裡面去找到自己需要的資訊的成本越來越高,一個統一的通用的目錄結構非常有必要。

以下內容來自於github上的這個專案(https://github.com/golang-standards/project-layout

/cmd

main函式檔案(比如 /cmd/myapp.go)目錄,這個目錄下面,每個檔案在編譯之後都會生成一個可執行的檔案。

不要把很多的程式碼放到這個目錄下面,這裡面的程式碼儘可能簡單。

/internal

應用程式的封裝的程式碼,某個應用私有的程式碼放到 /internal/myapp/ 目錄下,多個應用通用的公共的程式碼,放到 /internal/common 之類的目錄。

/pkg

一些通用的可以被其他專案所使用的程式碼,放到這個目錄下面

/vendor

專案依賴的其他第三方庫,使用 glide 工具來管理依賴

/api

協議檔案,Swagger/thrift/protobuf

/web

web服務所需要的靜態檔案

/configs

配置檔案

/init

服務啟停指令碼

/scripts

其他一些指令碼,編譯、安裝、測試、分析等等

/build

持續整合目錄

雲 (AMI), 容器 (Docker), 作業系統 (deb, rpm, pkg)等的包配置和指令碼放到 /build/package/ 目錄

/deployments

部署相關的配置檔案和模板

/test

其他測試目錄,功能測試,效能測試等

/docs

設計文件

/tools

常用的工具和指令碼,可以引用 /internal 或者 /pkg 裡面的庫

/examples

應用程式或者公共庫使用的一些例子

/assets

其他一些依賴的靜態資源

相關文章