Bigmachine 项目教程
1. 项目的目录结构及介绍
bigmachine/
├── cmd/
│ ├── bigmachine/
│ │ └── main.go
├── internal/
│ ├── bigmachine/
│ │ ├── config/
│ │ │ └── config.go
│ │ ├── server/
│ │ │ └── server.go
│ │ └── utils/
│ │ └── utils.go
├── pkg/
│ ├── bigmachine/
│ │ └── api/
│ │ └── api.go
├── .gitignore
├── go.mod
├── go.sum
└── README.md
- cmd/: 包含项目的入口文件,通常是
main.go
文件所在的位置。 - internal/: 包含项目的内部逻辑代码,通常不对外公开。
- config/: 包含项目的配置文件相关代码。
- server/: 包含服务器启动和运行相关的代码。
- utils/: 包含项目中使用的工具函数。
- pkg/: 包含项目的公共包,通常是对外公开的代码。
- api/: 包含项目的 API 接口相关代码。
- .gitignore: 指定 Git 版本控制系统忽略的文件和目录。
- go.mod: Go 模块的依赖管理文件。
- go.sum: Go 模块的依赖校验文件。
- README.md: 项目的说明文档。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/bigmachine/main.go
。该文件是整个项目的入口点,负责初始化配置、启动服务器等操作。
package main
import (
"bigmachine/internal/bigmachine/config"
"bigmachine/internal/bigmachine/server"
)
func main() {
// 初始化配置
config.Init()
// 启动服务器
server.Start()
}
3. 项目的配置文件介绍
项目的配置文件相关代码位于 internal/bigmachine/config/config.go
。该文件负责加载和解析项目的配置信息。
package config
import (
"os"
"log"
)
type Config struct {
Port string
DBHost string
DBPort string
DBUser string
DBPassword string
}
var Cfg Config
func Init() {
Cfg.Port = os.Getenv("PORT")
Cfg.DBHost = os.Getenv("DB_HOST")
Cfg.DBPort = os.Getenv("DB_PORT")
Cfg.DBUser = os.Getenv("DB_USER")
Cfg.DBPassword = os.Getenv("DB_PASSWORD")
if Cfg.Port == "" {
Cfg.Port = "8080"
}
log.Println("Config initialized:", Cfg)
}
该配置文件通过环境变量加载配置信息,并提供默认值。