/
├── app
│ ├── common
│ │ ├── adapter
│ │ ├── api
│ │ ├── dao
│ │ ├── service
│ │ ├── model
│ │ ├── ...
│ ├── system
│ │ ├── api
│ │ ├── dao
│ │ ├── service
│ │ ├── model
│ │ ├── router
│ │ ├── ...
│ └── other
├── boot
├── config
├── docker
├── document
├── i18n
├── library
├── packed
├── public
├── plugins
├── router
├── template
├── vendor
├── Dockerfile
├── go.mod
└── main.go
目錄/文件名稱 | 說明 | 描述 |
?app ? |
業(yè)務(wù)邏輯層 | 所有的業(yè)務(wù)邏輯存放目錄 |
?- api ? |
業(yè)務(wù)接口 | 接收/解析用戶輸入?yún)?shù)的入口/接口層 |
?- model ? |
數(shù)據(jù)模型 | 數(shù)據(jù)管理層,僅用于操作管理數(shù)據(jù),如數(shù)據(jù)庫操作 |
?- service ? |
邏輯封裝 | 業(yè)務(wù)邏輯封裝層,實(shí)現(xiàn)特定的業(yè)務(wù)需求,可供不同的包調(diào)用 |
?boot ? |
初始化包 | 用于項(xiàng)目初始化參數(shù)設(shè)置,往往作為main.go中第一個(gè)被import的包 |
?config ? |
配置管理 | 所有的配置文件存放目錄 |
?docker ? |
鏡像文件 | Docker鏡像相關(guān)依賴文件,腳本文件等等 |
?document ? |
項(xiàng)目文檔 | Documentation項(xiàng)目文檔,如:設(shè)計(jì)文檔、幫助文檔等等 |
?i18n ? |
I18N國(guó)際化 | I18N國(guó)際化配置文件目錄 |
?library ? |
公共庫包 | 公共的功能封裝包,往往不包含業(yè)務(wù)需求實(shí)現(xiàn) |
?packed ? |
打包目錄 | 將資源文件打包的Go文件存放在這里,boot包初始化時(shí)會(huì)自動(dòng)調(diào)用 |
?public ? |
靜態(tài)目錄 | 僅有該目錄下的文件才能對(duì)外提供靜態(tài)服務(wù)訪問 |
?plugins ? |
擴(kuò)展目錄 | 提供一些擴(kuò)展功能 |
?router ? |
路由注冊(cè) | 用于路由統(tǒng)一的注冊(cè)管理 |
?template ? |
模板文件 | MVC模板文件存放的目錄 |
?vendor ? |
第三方包 | 第三方依賴包存放目錄(可選,未來會(huì)被淘汰) |
?Dockerfile ? |
鏡像描述 | 云原生時(shí)代用于編譯生成Docker鏡像的描述文件 |
?go.mod ? |
依賴管理 | 使用Go Module包管理的依賴描述文件 |
?main.go ? |
入口文件 | 程序入口文件 |
在實(shí)踐中,小伙伴們可以根據(jù)實(shí)際情況增刪目錄。
注意:如果需要提供靜態(tài)服務(wù),那么所有靜態(tài)文件都需要存放到public目錄下,僅有該目錄下的靜態(tài)文件才能被外部直接訪問。不推薦將程序當(dāng)前運(yùn)行目錄加入到靜態(tài)服務(wù)中。
更多建議: