Go Backend Clean Architecture:一套可直接复用的 Go 后端项目模板

Go Backend Clean Architecture:一套可直接复用的 Go 后端项目模板
文章目录Go Backend Clean Architecture一套可直接复用的 Go 后端项目模板项目分层技术栈与主要依赖启动方式接口示例测试与 Mock适合谁用Go Backend Clean Architecture一套可直接复用的 Go 后端项目模板Amit Shekhar 在 GitHub 上维护的 go-backend-clean-architecture 已经收获了 6,104 个 Star适合想要用 Go 搭建后端服务的开发者参考。这个项目基于 Gin 框架实现采用 Clean Architecture 分层思路同时集成了 MongoDB、JWT 认证中间件、单元测试和 Docker 支持。作者将其设计为可以直接作为模板使用的项目骨架开发者可以在此基础上快速搭建自己的 Go 后端应用。项目分层整个项目按照 Clean Architecture 划分为五层Router负责路由注册Controller处理 HTTP 请求和响应Usecase承载业务逻辑Repository与数据库交互Domain定义核心实体和接口这种分层方式让业务逻辑、数据访问和接口层相互独立修改其中一层时对其他层的影响较小。项目还提供了架构图展示了 Public API 和 Private API 的请求流转路径便于理解数据从请求进入系统到落库的完整过程。技术栈与主要依赖项目选用了 Go 生态中比较常见的工具和库ginHTTP Web 框架mongo-go-driverMongoDB 官方驱动jwt用于 Access Token 和 Refresh Tokenviper读取 .env 等配置文件bcrypt密码哈希testify测试断言mockery自动生成 mock 代码这套组合覆盖了路由、认证、配置、存储和测试几个关键环节适合中小型后端项目直接使用。启动方式项目支持两种运行方式本地运行和 Docker 运行。本地运行需要配置 .env 文件并将 DB_HOST 设置为 localhost然后执行go run cmd/main.goDocker 方式则更简单配置好 .env 后执行docker-compose up -d两种方式默认都在 8080 端口提供服务。接口示例项目内置了几个基础接口/signup用户注册/login用户登录/profile获取用户信息/task创建和查看任务/refresh刷新 Token注册和登录接口会返回 accessToken 和 refreshToken后续访问受保护接口时需要在请求头中携带 Authorization: Bearer access_token。测试与 Mock为了便于测试项目使用 mockery 为 usecase、repository 和 database 生成 mock 代码。接口变更后需要重新生成对应的 mock 文件。测试命令为go test ./...mock 生成命令如下mockery --dirdomain --outputdomain/mocks --outpkgmocks --all mockery --dirmongo --outputmongo/mocks --outpkgmocks --all适合谁用如果你正在学习 Go 后端开发或者准备从零开始一个新项目这个项目可以作为起点。它把常见的目录结构、依赖选择和接口流程都整理好了省去了很多重复决策的时间。项目的 README 内容比较完整除了架构说明和运行方式还附带了 Postman 接口文档链接和 curl 示例基本可以直接跟着走一遍。Amit Shekhar 是 Outcome School 的创始人长期分享 Android、后端和系统设计的知识。这个项目也延续了他一贯的风格代码结构清晰文档直接可用。对于想要把 Clean Architecture 落地到 Go 项目中的开发者来说值得一看。、后端和系统设计的知识。这个项目也延续了他一贯的风格代码结构清晰文档直接可用。对于想要把 Clean Architecture 落地到 Go 项目中的开发者来说值得一看。