
项目结构一codeFind/ ├── cmd/ # 可执行程序入口 │ └── server/ │ └── main.go ├── internal/ # 应用内部包不被外部导入 │ ├── config/ # 配置层 │ ├── model/ # 数据模型层 │ ├── repository/ # 数据访问层 │ ├── service/ # 业务逻辑层 │ ├── handler/ # HTTP 接口层 │ ├── middleware/ # HTTP 中间件 │ └── router/ # 路由注册 ├── migrations/ # 数据库迁移脚本 ├── Dockerfile ├── docker-compose.yml ├── .gitignore ├── go.mod / go.sum └── README.md项目结构2https://github.com/amitshekhariitbhu/go-backend-clean-architecture架构Clean Architecture — Gin MongoDB JWT Dockergo-backend-clean-architecture/ │ ├── cmd/ # ── 应用入口 ── │ └── main.go # 启动加载配置 → 连接 DB → 注册路由 → 启动 HTTP │ ├── api/ # ── API 层HTTP 传输层 ── │ ├── controller/ # HTTP 控制器解析请求、调用 usecase、返回响应 │ ├── middleware/ # JWT 鉴权中间件 │ └── route/ # 路由注册 依赖注入组装点 │ ├── bootstrap/ # ── 启动引导 ── │ ├── app.go # Application 结构体聚合 Env Mongo │ ├── env.go # Viper 读取 .env │ └── database.go # MongoDB 连接初始化 │ ├── domain/ # ── 领域层零外部依赖 ── │ ├── user.go # User 实体 UserRepository 接口 │ ├── task.go # Task 实体 TaskRepository/TaskUsecase 接口 │ ├── login.go # Login 请求/响应 LoginUsecase 接口 │ ├── signup.go # Signup 请求/响应 SignupUsecase 接口 │ ├── profile.go # Profile 模型 ProfileUsecase 接口 │ ├── refresh_token.go # RefreshToken 请求 Usecase 接口 │ ├── jwt_custom.go # JWT Claims 定义 │ ├── error_response.go # 统一错误响应 │ ├── success_response.go # 统一成功响应 │ └── mocks/ # mockery 生成的 mock测试用 │ ├── usecase/ # ── 用例层业务逻辑编排 ── │ ├── login_usecase.go # 登录查用户 → 生成 token │ ├── signup_usecase.go # 注册创建用户 → 生成 token │ ├── profile_usecase.go # 根据 userID 查资料 │ ├── refresh_token_usecase # 刷新 token │ ├── task_usecase.go # Task CRUD │ └── task_usecase_test.go │ ├── repository/ # ── 数据仓库层实现 domain 接口 ── │ ├── task_repository.go # Task 的 MongoDB 持久化 │ ├── user_repository.go # User 的 MongoDB 持久化 │ └── user_repository_test.go │ ├── mongo/ # ── MongoDB 抽象层可 mock ── │ ├── mongo.go # Client/Database/Collection/Cursor 接口 实现 │ └── mocks/ # mockery 生成的 mongo mock │ ├── internal/ # ── 内部工具包编译器禁止外部导入 ── │ ├── tokenutil/ # JWT 工具创建/验证/提取 ID │ └── fakeutil/ # 测试占位工具 │ ├── assets/ # 文档图片 ├── .env.example ├── Dockerfile ├── docker-compose.yaml ├── go.mod / go.sum └── README.md项目结构3Go Clean Template (Evrone)地址: https://github.com/evrone/go-clean-template (6k ⭐)架构Clean Architecture — Fiber PostgreSQL RabbitMQ/NATS/gRPC JWT Swaggergo-clean-template/ │ ├── cmd/app/ │ └── main.go # 应用入口加载配置 → 初始化日志 → 启动 app.Run() │ ├── config/ │ └── config.go # 12-factor 配置环境变量读取 │ ├── docs/ # Swagger 文档 / Protobuf / 架构图 │ ├── integration-test/ # 集成测试独立容器运行 │ ├── internal/ # 应用内部包不被外部导入 │ │ │ ├── app/ # ── 应用组装 生命周期 ── │ │ ├── app.go # Run()DI 组装、启动 server、graceful shutdown │ │ └── migrate.go # 自动数据库迁移build tag: migrate │ │ │ ├── controller/ # ── 传输层4 种 server ── │ │ ├── amqp_rpc/ # AMQP RPC (RabbitMQ) │ │ │ ├── router.go │ │ │ │ │ ├── nats_rpc/ # NATS RPC结构同 AMQP RPC │ │ │ ├── router.go │ │ ├── grpc/ # gRPC │ │ │ ├── router.go │ │ │ ├── middleware/ # 认证中间件 │ │ └── restapi/ # REST API (Fiber) │ │ ├── router.go │ │ ├── middleware/ # auth / logger / recovery │ ├── entity/ # ── 领域实体零外部依赖 ── │ │ ├── user.go │ │ ├── task.go │ │ ├── translation.go / translation.history.go │ │ └── errors.go │ │ │ ├── usecase/ # ── 业务逻辑层按 domain 分包 ── │ │ ├── contracts.go # UseCase ↔ Repo 接口定义 │ │ ├── user/user.go # 用户注册/登录 │ │ ├── task/task.go # Task CRUD 状态机 │ │ ├── translation/translation.go # 翻译 历史记录 │ │ └── *_test.go # 单元测试 mock 文件 │ │ │ └── repo/ # ── 数据仓库层 ── │ ├── contracts.go # Repository 接口定义 │ ├── persistent/ # PostgreSQL 持久化 │ │ ├── user_postgres.go │ │ ├── task_postgres.go │ │ └── translation_postgres.go │ └── webapi/ # 外部 API翻译服务 │ └── translation_google.go │ ├── migrations/ # 数据库迁移golang-migrate │ ├── nginx/ │ └── nginx.conf # 反向代理配置 │ ├── pkg/ # 可复用的工具包 │ ├── httpserver/ # HTTP server 封装graceful shutdown │ ├── jwt/ # JWT 生成/验证 │ ├── postgres/ # PostgreSQL 连接 │ └── rabbitmq/ # RabbitMQ RPC 模式封装 │ ├── .env.example ├── .golangci.yml ├── Dockerfile ├── Makefile ├── docker-compose.yml ├── docker-compose-integration-test.yml ├── go.mod / go.sum └── README.mdKubernetes (k8s)地址: https://github.com/kubernetes/kubernetes (114k ⭐)架构微服务架构 — Go 标准库 etcd gRPC 容器编排kubernetes/ │ ├── cmd/ # ── 所有可执行程序入口 ── │ ├── kube-apiserver/ # API Server集群网关REST API 准入控制 │ ├── kube-controller-manager/ # 控制器管理器运行各种控制器循环 │ ├── kube-scheduler/ # 调度器Pod 分配到 Node │ ├── kubelet/ # 节点代理管理 Pod 生命周期 │ ├── kube-proxy/ # 网络代理Service 负载均衡 │ └── kubectl/ # 命令行工具用户操作集群 │ ├── pkg/ # ── 核心共享包被多个 cmd 引用 ── │ ├── apis/ # API Group 定义core, apps, batch, networking... │ ├── controller/ # 核心控制器实现deployment, replicaset, node... │ ├── scheduler/ # 调度算法与策略 │ ├── kubelet/ # Kubelet 核心逻辑PLEG, 容器运行时 │ ├── proxy/ # 网络代理实现iptables, ipvs 模式 │ ├── registry/ # API 资源的 REST 存储实现 │ ├── auth/ # 认证授权RBAC, Token, Certificate │ ├── volume/ # 存储卷插件emptyDir, hostPath, NFS, CSI... │ ├── quota/ # 资源配额管理 │ ├── serviceaccount/ # ServiceAccount 控制器 │ ├── apiserver/ # API Server 框架认证/授权/准入/序列化 │ ├── client-go/ # Go 客户端库Informers, Listers, ClientSet │ ├── kubectl/ # Kubectl 命令实现 │ └── util/ # 通用工具ipvs, iptables, mount, cert... │ ├── staging/ # ── 独立发布模块会拆分为独立仓库 ── │ └── src/k8s.io/ │ ├── api/ # 核心 API 类型定义 │ ├── apimachinery/ # API 基础设施Scheme, Codec, RESTMapper │ ├── client-go/ # 官方 Go 客户端最常用 │ ├── apiserver/ # Aggregated API Server 框架 │ ├── apiextensions-apiserver/# CRD 扩展 API Server │ ├── controller-runtime/ # Controller RuntimeOperator SDK 依赖 │ ├── code-generator/ # 代码生成器deepcopy, client, lister, informer │ └── ... # 其他独立模块 │ ├── plugin/ # ── 插件实现 ── │ ├── pkg/admission/ # 准入控制插件NamespaceLifecycle, PodSecurity... │ └── pkg/auth/ # 认证插件WebhookToken, x509... │ ├── api/ # ── API 规范定义 ── │ └── openapi-spec/ # OpenAPI v2 规范 │ ├── build/ # ── 构建脚本与镜像 ── │ ├── server/ # Server 组件 Dockerfile │ ├── node/ # Kubelet/Proxy Dockerfile │ └── ... # 其他组件构建配置 │ ├── cluster/ # ── 集群部署脚本 ── │ ├── gce/ # GCE 部署 │ ├── aws/ # AWS 部署 │ ├── addons/ # 集群插件DNS, Dashboard, Metrics... │ └── images/ # 集群依赖镜像 │ ├── hack/ # ── 开发工具脚本 ── │ ├── make-rules/ # Makefile 规则 │ ├── lib/ # Shell 函数库 │ └── tools/ # 代码生成/验证工具 │ ├── test/ # ── 测试 ── │ ├── e2e/ # 端到端测试核心测试套件 │ ├── integration/ # 集成测试 │ ├── fixtures/ # 测试数据 │ └── images/ # 测试用容器镜像 │ ├── third_party/ # ── 第三方依赖 ── │ └── ... # fork 的第三方库 │ ├── vendor/ # Go vendor 依赖 ├── Makefile # 构建入口 ├── go.mod / go.sum ├── OWNERS # 代码审批人配置 ├── SECURITY.md # 安全策略 └── README.md