为什么选择 Go?

Go 语言在后端开发中的优势不言而喻:

  • 编译速度快:秒级编译,开发体验流畅
  • 并发原语优秀:goroutine + channel 模型简洁强大
  • 部署简单:单二进制文件,无依赖
  • 性能优异:接近 C 的性能,远超脚本语言

项目结构推荐

project/
├── cmd/                    # 应用入口
│   └── server/
│       └── main.go
├── internal/               # 内部包(不对外暴露)
│   ├── handler/            # HTTP 处理器
│   ├── service/            # 业务逻辑
│   ├── repository/         # 数据访问
│   └── model/              # 数据模型
├── pkg/                    # 可复用的公共包
├── api/                    # API 定义(proto/openapi)
├── config/                 # 配置文件
└── deploy/                 # 部署相关

错误处理模式

Go 的错误处理虽然冗长,但有其设计哲学。推荐的做法:

// 包装错误,保留上下文
if err != nil {
    return fmt.Errorf("failed to query user %d: %w", userID, err)
}

写在最后

Go 语言的哲学是「少即是多」。它可能不是最有表现力的语言,但它的简洁和可预测性让团队协作变得更加顺畅。