核心架构
Bamboo Base 整体架构设计与模块说明
核心架构
整体架构设计
Bamboo Base 采用分层架构设计,核心模块围绕 Reg 注册中心展开:
模块依赖关系
包结构说明
github.com/bamboo-services/bamboo-base-go/
├── web/ # Web 核心模块
│ ├── register.go # Reg 注册中心
│ ├── engine.go # Gin 引擎封装
│ ├── config.go # 配置管理
│ ├── logger.go # 日志服务
│ ├── snowflake.go # 雪花算法
│ ├── base_response.go # 统一响应
│ └── result/ # 响应结果包
│ └── result.go
│
├── models/ # 模型基类
│ ├── base_entity.go # 基础实体
│ └── soft_delete.go # 软删除实体
│
├── middleware/ # 中间件
│ ├── response.go # 响应中间件
│ └── cors.go # 跨域中间件
│
├── utils/ # 工具库
│ ├── string.go # 字符串工具
│ ├── time.go # 时间工具
│ └── ctxutil/ # 上下文工具
│ └── ctxutil.go
│
└── error/ # 错误处理
└── error.go # 错误定义初始化流程
Bamboo Base 的初始化遵循固定的顺序:
// 1. 初始化注册中心
web.InitRegister()
// 2. 初始化配置(读取 .env 文件)
web.Register.ConfigInit()
// 3. 初始化日志系统
web.Register.LoggerInit()
// 4. 初始化雪花算法
web.Register.SnowflakeInit(datacenterID, nodeID)
// 5. 初始化 Gin 引擎
web.Register.EngineInit()
// 6. 初始化系统上下文
web.Register.SystemContextInit()
// 7. 启动服务
web.Register.Run(":8080")初始化流程图
设计原则
- 单一职责 - 每个模块只负责特定的功能领域
- 依赖注入 - 通过 Reg 注册中心管理所有依赖
- 接口抽象 - 核心功能通过接口定义,便于扩展和测试
- 约定优于配置 - 提供合理的默认值,减少配置负担