Skip to content

Architecture

Web

yaml
├── cmd/
│   └── main.go
├── internal/
│   ├── controller/
│   │   └── user_controller.go
│   ├── service/
│   │   └── user_service.go
│   ├── repository/
│   │   └── user_repository.go
│   └── model/
│       └── user.go
├── pkg/
│   └── common/
└── config/
go
// model/user.go
type User struct {
    ID   uint   `json:"id"`
    Name string `json:"name"`
}

// repository/user_repository.go
type UserRepository interface {
    GetByID(id uint) (*User, error)
    Save(user *User) error
}

// service/user_service.go
type UserService interface {
    GetUser(id uint) (*User, error)
    CreateUser(user *User) error
}

// controller/user_controller.go
type UserController struct {
    userService UserService
}

func (c *UserController) GetUser(ctx *gin.Context) {
    // 处理 HTTP 请求
}

推荐使用的技术栈:

  1. Web 框架:Gin/Hertz
  2. ORM:Ent/Gorm
  3. 依赖注入:Wire
  4. 配置管理:Viper
  5. 日志:Zap