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