Go-DDD 项目教程
项目地址:https://gitcode.com/gh_mirrors/god/go-ddd
1. 项目的目录结构及介绍
Go-DDD 项目的目录结构如下:
go-ddd/
├── cmd/
│ └── marketplace/
├── internal/
│ ├── domain/
│ │ ├── entities/
│ │ └── ...
│ ├── application/
│ ├── infrastructure/
│ │ ├── db/
│ │ └── repositories/
│ └── interface/
│ └── api/
│ └── rest/
├── vendor/
├── .gitignore
├── LICENSE
├── README.md
├── ddd-diagram-onion.png
├── go.mod
├── go.sum
目录结构介绍
- cmd/marketplace/: 包含项目的启动文件和命令行工具。
- internal/: 包含项目的核心逻辑,分为以下几个子目录:
- domain/: 包含业务逻辑和规则,如
entities
目录中的基本对象(如Product
和Seller
)。 - application/: 包含用例特定的操作,与领域层交互。
- infrastructure/: 提供技术支持,如数据库访问 (
db
) 和存储需求的具体实现 (repositories
)。 - interface/: 外部层,处理与外部世界的交互,如 API 端点 (
api/rest
)。
- domain/: 包含业务逻辑和规则,如
- vendor/: 包含项目的依赖包。
- .gitignore: Git 忽略文件。
- LICENSE: 项目许可证文件。
- README.md: 项目说明文件。
- ddd-diagram-onion.png: DDD 架构图。
- go.mod: Go 模块文件。
- go.sum: Go 模块依赖的校验文件。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/marketplace/
目录下。通常,启动文件会包含以下内容:
package main
import (
"github.com/sklinkert/go-ddd/internal/interface/api/rest"
"github.com/sklinkert/go-ddd/internal/infrastructure/db"
)
func main() {
// 初始化数据库连接
db.InitDB()
// 启动 REST API 服务
rest.StartServer()
}
启动文件介绍
- main.go: 这是项目的入口文件,负责初始化数据库连接并启动 REST API 服务。
- InitDB(): 初始化数据库连接的函数,通常位于
internal/infrastructure/db
目录下。 - StartServer(): 启动 REST API 服务的函数,通常位于
internal/interface/api/rest
目录下。
3. 项目的配置文件介绍
项目的配置文件通常位于项目的根目录下,常见的配置文件包括:
- config.yaml: 用于存储项目的配置参数,如数据库连接信息、API 端口等。
- .env: 用于存储环境变量,如数据库用户名和密码等。
配置文件示例
config.yaml:
database:
host: "localhost"
port: 5432
user: "user"
password: "password"
dbname: "go-ddd"
api:
port: 8080
.env:
DB_HOST=localhost
DB_PORT=5432
DB_USER=user
DB_PASSWORD=password
DB_NAME=go-ddd
API_PORT=8080
配置文件介绍
- config.yaml: 包含数据库连接信息和 API 端口等配置参数。
- .env: 包含环境变量,通常用于存储敏感信息,如数据库用户名和密码。
通过这些配置文件,项目可以在不同的环境中灵活配置,确保项目的可移植性和安全性。
go-ddd Go Domain Driven Design Template / Reference 项目地址: https://gitcode.com/gh_mirrors/god/go-ddd
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考