# go-layout **Repository Path**: fireflycore/go-layout ## Basic Information - **Project Name**: go-layout - **Description**: 萤火微服务框架模板 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-09 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言, microservice ## README # Firefly Go Layout `go-layout` 是 Firefly 微服务框架的 Go 版本标准项目模板。它提供了一套标准化的目录结构和基础设施配置,旨在帮助开发者快速构建规范的微服务应用。 本模板基于 **[go-micro](https://github.com/fireflycore/go-micro)**(Firefly 微服务框架的 Go 版本核心库)构建。 默认启动链路为:读取 `conf/bootstrap.json` 和 `conf/consul.json`,通过 Consul Store 加载运行期配置,再以 `ManagedServer` 托管业务 gRPC、management 端口和 sidecar 生命周期。`config` 数据面本身支持 `watch`/热更新,但 `go-layout` 默认模板当前只接入启动期加载,如需运行时热更新需要业务服务显式补充 `Watcher` 装配与组件重载策略。 > [在线文档](https://firefly.lhdht.cn/guide/) ## 快速开始 ### 初始化项目 1. **Clone 项目** ```bash git clone https://github.com/fireflycore/go-layout.git my-project cd my-project ``` 2. **重命名模块** 使用提供的脚本将模块名(默认 `go-layout`)替换为你自己的模块名(例如 `github.com/myuser/my-project`)。 **Windows:** ```cmd .\rename_project.bat github.com/myuser/my-project ``` **Linux / macOS:** ```bash chmod +x rename_project.sh ./rename_project.sh github.com/myuser/my-project ``` 3. **整理依赖** ```bash go mod tidy ``` 4. **准备配置** - 修改 `conf/bootstrap.json`,填写服务身份、端口、sidecar 与 telemetry 基础信息。 - 修改 `conf/consul.json`,填写 Consul 地址、协议、数据中心与令牌。 ### 常用命令 - `make generate`: 执行 `buf generate` 并生成 DTO - `make init`: 执行生成链路、`wire ./cmd/server` 和 `go mod tidy` - `make run`: 直接执行 `go run ./cmd/server` - `make build`: 先执行 `make init`,再注入构建信息并编译服务