Repolode
evrone

evrone/go-clean-template

一个 Go 服务的 Clean Architecture 项目模板,展示如何组织 REST、gRPC 及消息 RPC 等多种传输层的代码。

Star
7,708
Fork
665
未关闭 Issue
3
最近提交
11天前

这是什么?

go-clean-template 是一个遵循 Clean Architecture 原则的 Go 微服务模板。它把业务逻辑与数据库、Web 框架、消息中间件等基础设施分离,核心用例只依赖接口和标准库,便于服务随规模增长时保持结构清晰。

模板内置用户认证(JWT)、任务管理(含状态流转)和文本翻译(含历史记录)三个示例领域,每个领域都通过四种传输方式暴露:基于 Fiber 的 REST API、gRPC,以及基于 RabbitMQ(AMQP)和 NATS 的 RPC。依赖注入通过 New 构造函数完成,仓库还提供 Postgres、RabbitMQ、NATS、Jaeger 的 Docker Compose 配置。

项目同时包含 OpenTelemetry 链路追踪(跨四种传输传播上下文)、Prometheus 指标、Swagger 文档、集成测试和数据库迁移。

核心功能

  • 01通过 New 构造函数实现依赖注入的 Clean Architecture 分层
  • 02基于 Fiber 的 REST API,并用 swag 生成 Swagger 文档
  • 03使用 protobuf 定义的 gRPC 服务
  • 04基于 RabbitMQ(AMQP)和 NATS 的请求-应答 RPC 服务
  • 05OpenTelemetry 链路追踪与 Prometheus 指标
  • 06包含 Postgres、RabbitMQ、NATS 和 Jaeger 的 Docker Compose 环境

适用场景

  • 以统一的项目结构快速启动新的 Go 微服务
  • 学习如何在 Go 项目中将业务逻辑与传输层、存储层分离
  • 构建需要通过 REST、gRPC 和消息队列提供相同业务能力的服务

快速上手

  1. 1

    使用 Docker Compose 启动 Postgres、RabbitMQ 和 NATS

    make compose-up
  2. 2

    运行应用并执行数据库迁移

    make run

使用前须知

  • 本地开发需要 Docker Compose 来运行 Postgres、RabbitMQ 和 NATS。

标签

常见问题

go-clean-template 是什么?
一个 Go 服务的 Clean Architecture 项目模板,展示如何组织 REST、gRPC 及消息 RPC 等多种传输层的代码。 go-clean-template 是一个遵循 Clean Architecture 原则的 Go 微服务模板。它把业务逻辑与数据库、Web 框架、消息中间件等基础设施分离,核心用例只依赖接口和标准库,便于服务随规模增长时保持结构清晰。
go-clean-template 可以免费使用吗?用的什么许可证?
go-clean-template 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
go-clean-template 还在维护吗?
活跃维护中。go-clean-template 最近一次提交是在 2026年10月11日。
go-clean-template 适合用来做什么?
以统一的项目结构快速启动新的 Go 微服务 学习如何在 Go 项目中将业务逻辑与传输层、存储层分离 构建需要通过 REST、gRPC 和消息队列提供相同业务能力的服务
go-clean-template 怎么安装和运行?
使用 Docker Compose 启动 Postgres、RabbitMQ 和 NATS: make compose-up 运行应用并执行数据库迁移: make run
在哪里获取 go-clean-template?
源代码和安装说明在 GitHub 上:https://github.com/evrone/go-clean-template

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目