@@ -25,62 +25,41 @@ go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的
2525
2626使用 go-zero 的好处:
2727
28- * 轻松获得支撑千万日活服务的稳定性
29- * 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码
30- * 微服务治理中间件可无缝集成到其它现有框架使用
31- * 极简的 API 描述,一键生成各端代码
32- * 自动校验客户端请求参数合法性
33- * 大量微服务治理和并发工具包
28+ * 经过千万日活服务验证的稳定性
29+ * 内建弹性保护:级联超时、限流、熔断、降载(无需配置)
30+ * 极简 API 语法生成多端代码
31+ * 自动参数校验和丰富的微服务工具包
3432
3533![ 架构图] ( https://raw.githubusercontent.com/zeromicro/zero-doc/main/doc/images/architecture.png )
3634
3735## go-zero 框架背景
3836
39- 18 年初, 我们决定从 ` Java+MongoDB ` 的单体架构迁移到微服务架构,经过仔细思考和对比,我们决定:
37+ 18 年初, 我们决定从 ` Java+MongoDB ` 的单体架构迁移到微服务架构,选择:
4038
41- * 基于 Go 语言
42- * 高效的性能
43- * 简洁的语法
44- * 广泛验证的工程效率
45- * 极致的部署体验
46- * 极低的服务端资源成本
47- * 自研微服务框架
48- * 有过很多微服务框架自研经验
49- * 需要有更快速的问题定位能力
50- * 更便捷的增加新特性
39+ * ** 基于 Go 语言** - 高效性能、简洁语法、极致部署体验、极低资源成本
40+ * ** 自研微服务框架** - 更快速的问题定位、更便捷的新特性增加
5141
5242## go-zero 框架设计思考
5343
54- 对于微服务框架的设计,我们期望保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,我们就有如下一些准则:
44+ go-zero 遵循以下核心设计准则:
5545
56- * 保持简单,第一原则
57- * 弹性设计,面向故障编程
58- * 工具大于约定和文档
59- * 高可用、高并发、易扩展
60- * 对业务开发友好,封装复杂度
61- * 约束做一件事只有一种方式
62-
63- 我们经历不到半年时间,彻底完成了从 ` Java+MongoDB ` 到 ` Golang+MySQL ` 为主的微服务体系迁移,并于 18 年 8 月底完全上线,稳定保障了业务后续迅速增长,确保了整个服务的高可用。
46+ * ** 保持简单** - 简单是第一原则
47+ * ** 高可用** - 高并发、易扩展
48+ * ** 弹性设计** - 面向故障编程
49+ * ** 工具驱动** - 工具大于约定和文档
50+ * ** 业务友好** - 封装复杂度、一事一法
6451
6552## go-zero 项目实现和特点
6653
67- go-zero 是一个集成了各种工程实践的包含 web 和 rpc 框架,有如下主要特点:
54+ go-zero 集成各种工程实践,主要特点:
6855
69- * 强大的工具支持,尽可能少的代码编写
70- * 极简的接口
71- * 完全兼容 net/http
72- * 支持中间件,方便扩展
73- * 高性能
74- * 面向故障编程,弹性设计
75- * 内建服务发现、负载均衡
76- * 内建限流、熔断、降载,且自动触发,自动恢复
77- * API 参数自动校验
78- * 超时级联控制
79- * 自动缓存控制
80- * 链路跟踪、统计报警等
81- * 高并发支撑,稳定保障了疫情期间每天的流量洪峰
56+ * ** 强大工具支持** - 尽可能少的代码编写
57+ * ** 极简接口** - 完全兼容 net/http
58+ * ** 高性能** - 优化的速度和效率
59+ * ** 弹性设计** - 内建限流、熔断、降载,自动触发、自动恢复
60+ * ** 服务治理** - 内建服务发现、负载均衡、链路跟踪
61+ * ** 开发工具** - API 参数自动校验、超时级联控制、自动缓存控制
8262
83- 如下图,我们从多个层面保障了整体服务的高可用:
8463
8564![ 弹性设计] ( https://raw.githubusercontent.com/zeromicro/zero-doc/main/doc/images/resilience.jpg )
8665
@@ -100,104 +79,53 @@ GO111MODULE=on GOPROXY=https://goproxy.cn/,direct go get -u github.com/zeromicro
10079
10180## AI 原生开发
10281
103- 让大模型成为你的 go-zero 专家!go-zero 团队构建了完整的 AI 工具生态,包括 ** ai-context ** 、 ** zero-skills ** 和 ** mcp-zero ** 三个项目, 让 Claude、GitHub Copilot、Cursor 等 AI 编程助手生成符合 go-zero 规范的代码。
82+ go-zero 团队构建了完整的 AI 工具生态, 让 Claude、GitHub Copilot、Cursor 生成符合 go-zero 规范的代码。
10483
10584### 三大核心项目
10685
107- ** [ ai-context] ( https://github.com/zeromicro/ai-context ) ** - AI 的"工作手册"
108- - 告诉 AI 助手** 什么时候做什么**
109- - 工作流程和决策树的快速参考
110- - 专为 GitHub Copilot 优化(通过 ` .github/copilot-instructions.md ` )
86+ ** [ ai-context] ( https://github.com/zeromicro/ai-context ) ** - AI 的工作流程指南
11187
112- ** [ zero-skills] ( https://github.com/zeromicro/zero-skills ) ** - AI 的"技术百科"
113- - 提供** 详细模式** 和完整示例
114- - ✅ 正确做法 vs ❌ 错误做法对比
115- - 涵盖 REST API、RPC、数据库、弹性保护等
88+ ** [ zero-skills] ( https://github.com/zeromicro/zero-skills ) ** - 模式库和示例
11689
117- ** [ mcp-zero] ( https://github.com/zeromicro/mcp-zero ) ** - AI 的"实时助手"
118- - 让 AI 能** 真正动手做** :生成代码、分析项目
119- - 基于 Model Context Protocol (MCP)
120- - 与 Claude Desktop 深度集成
90+ ** [ mcp-zero] ( https://github.com/zeromicro/mcp-zero ) ** - 基于 MCP 的代码生成工具
12191
12292### 快速配置
12393
12494#### GitHub Copilot
12595``` bash
126- # 添加 ai-context 作为 submodule
12796git submodule add https://github.com/zeromicro/ai-context.git .github/ai-context
128-
129- # 创建符号链接(macOS/Linux)
130- ln -s ai-context/00-instructions.md .github/copilot-instructions.md
131-
132- # Windows 用户使用
133- mklink .github\c opilot-instructions.md .github\a i-context\0 0-instructions.md
134-
135- # 更新到最新版本
136- git submodule update --remote .github/ai-context
97+ ln -s ai-context/00-instructions.md .github/copilot-instructions.md # macOS/Linux
98+ # Windows: mklink .github\copilot-instructions.md .github\ai-context\00-instructions.md
99+ git submodule update --remote .github/ai-context # 更新
137100```
138101
139102#### Cursor
140103``` bash
141- # 添加 ai-context 作为 submodule
142104git submodule add https://github.com/zeromicro/ai-context.git .cursorrules
143-
144- # 更新到最新版本
145- git submodule update --remote .cursorrules
105+ git submodule update --remote .cursorrules # 更新
146106```
147107
148- #### Windsurf (Codeium)
108+ #### Windsurf
149109``` bash
150- # 添加 ai-context 作为 submodule
151110git submodule add https://github.com/zeromicro/ai-context.git .windsurfrules
152-
153- # 更新到最新版本
154- git submodule update --remote .windsurfrules
111+ git submodule update --remote .windsurfrules # 更新
155112```
156113
157- #### Claude Desktop + mcp-zero
114+ #### Claude Desktop
158115``` bash
159- # 安装 mcp-zero
160- git clone https://github.com/zeromicro/mcp-zero.git
161- cd mcp-zero
162- go build -o mcp-zero main.go
163-
164- # 配置 Claude Desktop(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json)
165- # 在 mcpServers 中添加:
166- {
167- " mcpServers" : {
168- " mcp-zero" : {
169- " command" : " /path/to/mcp-zero" ,
170- " env" : {
171- " GOCTL_PATH" : " /Users/yourname/go/bin/goctl"
172- }
173- }
174- }
175- }
176- ```
177-
178- 或使用 Claude 命令行:
179- ``` bash
180- # 通过 CLI 添加 mcp-zero 服务器
181- claude mcp add \
182- --transport stdio \
183- mcp-zero \
184- --env GOCTL_PATH=/Users/yourname/go/bin/goctl \
185- -- /path/to/mcp-zero
116+ git clone https://github.com/zeromicro/mcp-zero.git && cd mcp-zero && go build
117+ # 配置: ~/Library/Application Support/Claude/claude_desktop_config.json
118+ # 或: claude mcp add --transport stdio mcp-zero --env GOCTL_PATH=/path/to/goctl -- /path/to/mcp-zero
186119```
187120
188121### 协同工作原理
189122
190- AI 助手通过这三个工具协同配合,提供完整的开发体验:
191-
192- 1 . ** ai-context** 提供工作流程指导和快速模式
193- 2 . ** zero-skills** 提供详细实现和最佳实践
194- 3 . ** mcp-zero** 提供实时代码生成和项目分析
123+ AI 助手通过三个工具协同配合:
124+ 1 . ** ai-context** - 工作流程指导
125+ 2 . ** zero-skills** - 实现模式
126+ 3 . ** mcp-zero** - 实时代码生成
195127
196- ** 示例** :创建新的 REST API
197- - AI 读取 ** ai-context** → 了解应该用 ` create_api_service ` 工具
198- - AI 调用 ** mcp-zero** → 执行生成项目结构
199- - AI 参考 ** zero-skills** → 获取完整的 Handler/Logic/Context 三层架构模式
200- - 结果:符合 go-zero 规范的生产级代码 ✅
128+ ** 示例** :创建新的 REST API → AI 读取 ** ai-context** 了解工作流 → 调用 ** mcp-zero** 生成代码 → 参考 ** zero-skills** 实现模式 → 生成符合规范的代码 ✅
201129
202130## Quick Start
203131
@@ -209,7 +137,6 @@ AI 助手通过这三个工具协同配合,提供完整的开发体验:
209137
2101381 . 安装 goctl 工具
211139
212- ` goctl ` 读作 ` go control ` ,不要读成 ` go C-T-L ` 。` goctl ` 的意思是不要被代码控制,而是要去控制它。其中的 ` go ` 不是指 ` golang ` 。在设计 ` goctl ` 之初,我就希望通过 ` 工具 ` 来解放我们的双手👈
213140
214141 ``` shell
215142 # Go
@@ -224,7 +151,7 @@ AI 助手通过这三个工具协同配合,提供完整的开发体验:
224151 docker run --rm -it -v ` pwd` :/app kevinwan/goctl --help
225152 ```
226153
227- 确保 goctl 可执行,并且在 $PATH 环境变量里。
154+ 确保 goctl 可执行并在 $PATH 环境变量里。
228155
2291562. 快速生成 api 服务
230157
@@ -258,7 +185,7 @@ AI 助手通过这三个工具协同配合,提供完整的开发体验:
258185 * 可以在 ` servicecontext.go` 里面传递依赖给 logic,比如 mysql, redis 等
259186 * 在 api 定义的 ` get/post/put/delete` 等请求对应的 logic 里增加业务处理逻辑
260187
261- 3. 可以根据 api 文件生成前端需要的 Java, TypeScript, Dart, JavaScript 代码
188+ 3. 生成多语言客户端代码
262189
263190 ` ` ` shell
264191 goctl api java -api greet.api -dir greet
@@ -295,7 +222,7 @@ AI 助手通过这三个工具协同配合,提供完整的开发体验:
295222
296223# # go-zero 用户
297224
298- go-zero 已被许多公司用于生产部署,接入场景如在线教育、电商业务 、游戏、区块链等,目前为止,已使用 go-zero 的公司包括但不限于:
225+ go-zero 已被众多公司用于生产部署,场景涵盖在线教育、电商 、游戏、区块链等。目前使用 go-zero 的公司包括但不限于:
299226
300227> 1. 好未来
301228> 2. 上海晓信信息科技有限公司(晓黑板)
0 commit comments