竹简文档

核心架构

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")

初始化流程图

设计原则

  1. 单一职责 - 每个模块只负责特定的功能领域
  2. 依赖注入 - 通过 Reg 注册中心管理所有依赖
  3. 接口抽象 - 核心功能通过接口定义,便于扩展和测试
  4. 约定优于配置 - 提供合理的默认值,减少配置负担

下一步

On this page