【轉(zhuǎn)載+修改】golang開發(fā)目錄結(jié)構(gòu)
老三:近期在github上讀一些go項目的開源代碼,發(fā)現(xiàn)項目中很多目錄并不能把握其中的主要意義,看的一臉懵。于是找到了下面的內(nèi)容來幫助解惑
/cmd
main函數(shù)文件(比如?/cmd/myapp.go
)目錄,這個目錄下面,每個文件在編譯之后都會生成一個可執(zhí)行的文件。
不要把很多的代碼放到這個目錄下面,這里面的代碼盡可能簡單。
/internal
應用程序的封裝的代碼,某個應用私有的代碼放到?/internal/myapp/
?目錄下,多個應用通用的公共的代碼,放到?/internal/common
?之類的目錄。
/pkg
一些通用的可以被其他項目所使用的代碼,放到這個目錄下面
/vendor
項目依賴的其他第三方庫,使用?glide
?工具來管理依賴
/api
協(xié)議文件,Swagger/thrift/protobuf
?等
/web
web服務(wù)所需要的靜態(tài)文件
/configs
配置文件
/init
服務(wù)啟停腳本
/scripts
其他一些腳本,編譯、安裝、測試、分析等等
/build
持續(xù)集成目錄
云 (AMI), 容器 (Docker), 操作系統(tǒng) (deb, rpm, pkg)等的包配置和腳本放到?/build/package/
?目錄
/deployments
部署相關(guān)的配置文件和模板
/test
其他測試目錄,功能測試,性能測試等
/docs
設(shè)計文檔
/tools
常用的工具和腳本,可以引用?/internal
?或者?/pkg
?里面的庫
/examples
應用程序或者公共庫使用的一些例子
/assets
想看更完整的解釋,參看如下開源項目:https://github.com/golang-standards/project-layout
有中文版呦~
轉(zhuǎn)載地址:https://studygolang.com/articles/12259?fr=sidebar
標簽: