Go 项目设计

单体应用

使用 Gin(Web 框架) + GORM(ORM 框架) 构建单体应用时,推荐采用经典的 分层架构 。 这种架构的核心原则是 "依赖单向向下"

HTTP Handler (Controller)Service (业务逻辑)Repository (数据持久化)GORM / Database

项目目录结构

text 复制代码
├── app.go              # 手写依赖注入,初始化 Web 服务
├── main.go             # 程序入口
├── Dockerfile          # 生产镜像构建
├── docker-compose.yaml # 本地依赖服务(MySQL / Redis)
├── config/
│   └── dev.yaml        # 本地开发配置
├── internal/
│   ├── domain/         # 领域模型
│   ├── repository/     # 数据仓库抽象
│   │   └── dao/        # 数据库操作
│   │   └── cache/      # 数据库缓存
│   ├── service/        # 业务逻辑
│   └── web/            # HTTP 接口层
├── pkg/                # 项目内部通用工具(统一响应、自定义错误等)
├── script/             # 数据库初始化等脚本
├── ioc/                # 基础设施初始化(DB / Redis / 中间件 / Handler)
└── k8s-*.yaml          # Kubernetes 部署资源
引入 Service - Repostiory - DAO 三层结构
  • service: 代表的是领域服务(domain service), 代表一个业务的完整的处理过程。
  • repository:按照 DDD 的说法,是代表领域对象的存储,这里你直观理解为存储数据的抽象。
  • dao: 代表的是数据库操作
  • domain:代表领域对象
调用流程
相关推荐
运维开发笔记10 小时前
8.2 Go Struct 方法学习笔记
go
Go_error13 小时前
Fyne:让 Go 开发者也能玩转 GUI
后端·go
Go_error13 小时前
Go 实现 Mysql AES 与 Scanner/Valuer 自动加解密
go
Go_error13 小时前
Badu/bus:Go 轻量级泛型发布/订阅事件总线
后端·go
Go_error13 小时前
Go-redis:执行 Lua 脚本
后端·go
stark张宇17 小时前
Go并发调度器源码探秘:GMP模型之G/M/P底层数据结构完全拆解
go
学习星球2 天前
# 6G通感一体化(ISAC)技术深度解析——从原理到实战> <br />
go·信息与通信·媒体
小满zs2 天前
Go语言第十章(指针)
后端·google·go
学习星球3 天前
6G核心网架构深度解析——AI Native时代的网络变革
网络·人工智能·5g·架构·go·信息与通信
ylj_dev4 天前
从 0 构建 AI Workload Platform(九):真实场景、最小控制台与开源发布
go·react·开源项目·工作流·ai agent