Go语言自学宝藏库go-learning:一张地图带你玩转12个实战模块,从零基础到AI应用完整指南
【免费下载链接】go-learning一个存放Go语言/计算机相关学习资料的仓库项目地址: https://gitcode.com/gh_mirrors/go/go-learning
📚 如果你正在找一个Go语言自学路线清晰、又能立刻动手的仓库,那么 go-learning 就是为你准备的:它是一位一线后端开发者的 Go 学习仓库,把「经典读书笔记 + 12 个可运行的实战模块 + 大模型应用案例」打包在一起,从第一行hello world一直陪你走到 Go 写 AI 应用。
克隆仓库即可开始(所有模块都有完整源码和说明):
git clone https://gitcode.com/gh_mirrors/go/go-learning一、为什么 go-learning 适合零基础自学 Go?
很多新手卡在三件事上:不知道学什么、没有可运行的例子、学完没有成就感。这个仓库的解法是把每个知识点都做成一个最小可运行模块:
- ✅有主线:入门 → 语法 → 并发 → 微服务 → 存储 → AI 应用,顺序即路线
- ✅能跑起来:每个模块都是独立 Go 项目,
go run或go build就能看到效果 - ✅有作品:终端小游戏、博客全栈、RAG 问答助手,学完就有简历项目
二、12 个模块学习地图:一张表看懂全仓库
| # | 模块路径 | 学什么 | 适合阶段 |
|---|---|---|---|
| 1 | 《Go程序设计语言笔记》.md | 经典教材重点解析,理论打底 | 入门 |
| 2 | doutok-course/basic-knowledge/ | Golang/Kratos/Docker/React/Next.js 系列课程 | 入门 |
| 3 | def/ | defer 与 channel 的微妙执行顺序 | 基础语法 |
| 4 | generics/ | 泛型实战 | 基础语法 |
| 5 | concurrence/ | 多版本归并排序性能对比(并发优化) | 进阶 |
| 6 | di/ | 依赖注入:从手动装配到 Wire | 进阶 |
| 7 | kit/i18n/ | 用 TOML 实现多语言国际化 | 工程化 |
| 8 | kit/transaction/ | 整洁架构 + 数据库事务 | 工程化 |
| 9 | storage/mongodb/ | MongoDB 增删改查 + Docker 部署 | 工程化 |
| 10 | temporal/ | 分布式工作流引擎 | 进阶 |
| 11 | dragon/ | 终端小游戏《模拟龙生》 | 趣味实战 |
| 12 | eino_assistant/ | Eino 大模型 + RAG 知识问答 | AI 应用 |
💡 建议不要全量通读,而是先跑通第 2、11 号模块建立信心,再按兴趣选 2~3 个深入。
三、零基础起步:先配置环境,再读第一课
第一课就在 golang-intro 目录
入门课程位于doutok-course/basic-knowledge/golang-intro/,配套的 README.md 覆盖了新手最关心的三件事:
- 环境配置:Windows / macOS / Linux 三平台安装步骤,以及
GOROOT、GOPATH、go.mod的关系图解 - 第一行代码:用
hello.go跑通包声明、变量、控制流、切片等基础语法 - 包管理:
go mod init、go get、go mod tidy三个命令速通
同一目录下的syntax_examples.go是一份语法对照清单,配合《Go程序设计语言笔记》.md(仓库根目录)阅读,可以边看边在本地敲一遍。
四、基础语法速通:defer、泛型与并发
三个小模块,每个都只有一两个文件,是「读代码」练手的最佳材料:
1️⃣ defer 的隐藏顺序—def/main.go
只有 10 行代码,却演示了defer与channel阻塞时的执行时机:defer语句什么时候才真正执行?运行一遍你就懂了。
2️⃣ 泛型不再抽象—generics/
用真实例子理解泛型类型参数,告别「泛型到底用在哪」。
3️⃣ 并发不是玄学—concurrence/main.go
这个文件把同一个归并排序写了 V1~V3 多个版本(含并行实现),从 128 个元素到 1000 万个元素逐档计时对比。看完你会直观理解:协程的并发优化,收益取决于数据量。
五、工程化进阶:依赖注入、事务与 i18n
依赖注入三件套,逐级升级
di/目录用四个子项目讲透依赖注入(DI):
di/no_di/:全局变量直连数据库的「反面教材」,看看没有 DI 的代码有多难测试di/simple_di/:手动传参的简单注入di/wire_di/:用 Google Wire 在编译期生成注入代码di/helloworld/:一个完整的 Kratos 微服务项目,cmd/helloworld/wire.go展示生产级用法
事务与国际化:真实项目必会
kit/transaction/:基于整洁架构的 helloworld 项目,重点看pkg/db/与internal/biz/如何实现跨存储事务kit/i18n/:用 TOML 文件(active.zh.toml、active.en.toml)做中英文切换,Makefile 一键提取翻译词条
存储与分布式工作流
storage/mongodb/:含docker-compose.yaml,一条命令拉起 MongoDB,再跑mongodb.go和mongodb_test.go看完整 CRUDtemporal/:分布式任务编排引擎的 Go 示例,为「长流程、要重试、要补偿」的场景做准备
六、趣味实战:用 Go 写一个终端小游戏
学语法容易无聊,dragon/目录的《模拟龙生》能让你笑着学 Go:你扮演一条新生巨龙,分配 100 点属性、外出冒险打怪、在 200 轮内冲击最高修为,最后成绩写入 SQLite 排行榜。
这个游戏浓缩了多个 Go 核心知识点(源码见dragon/dragon.go、dragon/npc.go、dragon/rank.go):
- goroutine + channel:每个终端面板一个协程监听自己的 channel,消息的生产与消费全靠 channel 协调
- 终端 UI:借助 termdash 在命令行里画出仪表盘
- 本地数据库:
rank.db(SQLite)保存 Top10 排行榜
有 Go 环境的电脑可以直接编译运行,边玩边读 dragon/README.md 里的设计剖析。
七、从后端到 AI:Eino 大模型应用模块
eino_assistant/是仓库里最有前瞻性的模块——用字节开源的Eino框架做 Go 的 AI 应用开发:
eino/knowledgeindexing/:文档加载 → 切片 → 向量化 → 入库的完整知识索引流水线(loader.go、transformer.go、embedding.go)eino/rag/:一条命令启动的 RAG 命令行问答助手,cmd/main.go支持--redis、--topk参数调节检索策略data/:自带 Redis 向量索引与任务数据,配合docker-compose.yml本地即可复现
入门路径:先docker-compose up -d启动 Redis,再跑 RAG 命令行工具,最后逐文件对照源码理解「检索增强生成」每一步。
八、新手 30 天学习路线建议
| 阶段 | 天数 | 目标 | 对应模块 |
|---|---|---|---|
| 第一周 | D1~7 | 环境配置 + 语法入门 | golang-intro、《Go程序设计语言笔记》.md |
| 第二周 | D8~14 | defer / 泛型 / 并发原理 | def/、generics/、concurrence/ |
| 第三周 | D15~21 | 依赖注入 + Kratos 微服务 | di/、kratos-intro/ |
| 第四周 | D22~30 | 小游戏 + RAG 助手(作品产出) | dragon/、eino_assistant/ |
九、常见问题 FAQ
Q1:完全没有编程基础,能学这个仓库吗?能。从doutok-course/basic-knowledge/golang-intro/开始,它从「下载 Go」教起,先跑通hello.go再进入其他模块。
Q2:模块之间必须按顺序学吗?不必。第 2、11、12 号模块(入门课程、小游戏、AI 助手)相对独立,适合兴趣驱动的同学先跑起来。
Q3:微服务和 AI 模块需要什么前置条件?Kratos 模块需要装好 Go 和 protoc 相关工具(README 里有完整命令);AI 模块需要 Docker 启动 Redis,并配置模型 API 的环境变量。
十、写在最后
go-learning 的价值在于每一格知识都对应一段能运行的代码:理论有读书笔记,语法有小练习,进阶有微服务,天花板是 AI 应用。把这张 12 模块地图收藏好,按「入门 → 语法 → 工程化 → AI」的节奏走,30 天后你会收获的不只是 Go 技能,还有两个能写进简历的完整项目。🚀
【免费下载链接】go-learning一个存放Go语言/计算机相关学习资料的仓库项目地址: https://gitcode.com/gh_mirrors/go/go-learning
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考