golang-standards 社群提供了一個golang 項目的參考結構,同時提供了比較完整的說明
/cmd
項目的主幹,次目錄應該足夠簡單
/interenal
内部的,不需要分享到外部的,這個屬于golang 内部的一個特性,我們也會在好多開源項目中看到
/pkg
可複用的一些代碼庫
/vendor
vendor 模式的包,現在推薦的玩法是go modules 功能
/api
關于openapi/swaggeer 規範的json 模式檔案
/web
靜态web資源,伺服器模版以及單頁面應用。。。
/config
配置檔案模版或者more 嗯配置
/init
system init 管理的腳本
/scripts
建構,安裝,分析等的腳本
/build
打包以及持續內建的
/deployments
關于iaas paas,以及部署的,也可以水用/deploy 命名
/test
關于程式測試的
/docs
設計以及使用者文檔
/tools
項目的支援工具,工具可以從/pkg 以及/inteernal 導入
/examples
公共執行個體
/thrid_party
外部輔助工具和,或者其他三方工具
/githooks
git hooks
/assets
與代碼庫共享的(圖像,徽标)
/websitee
關于項目的website 文檔,可以使用github pages 。。。
/src
以前好多項目使用的是src 模式,已經不推薦使用了
https://github.com/golang-standards/project-layout
https://github.com/danceyoung/paper-code/blob/master/package-oriented-design/packageorienteddesign.md