Go 语言学习路线
文中内容转自Go语言学习线路来咯
计算机基础
1.1 数据结构和算法

1.2 操作系统

1.3 计算机网络
基础书籍:《图解 HTTP》、《图解 TCP_IP》、《网络是怎样连接的》
进阶书籍:《计算机网络·自顶向下方法》、《TCP_IP 详解》。

1.4 数据库

Go 语言基础

学完基础,知道你可能想试试手,这里推荐几个初级的项目,随意挑选自己感兴趣的一两个即可。
- starcharts:https://github.com/caarlos0/starcharts,项目的功能是生成 Github 上面的项目的 star 趋势图,核心代码不多,用来练手很合适。
- gorched:https://github.com/zladovan/gorched,使用 Go 写的一个小游戏。
- pacgo:https://github.com/danicat/pacgo,也是使用 Go 写的一个小游戏,每一步都有详细的描述和代码实现。
- wechat-go:https://github.com/songtianyi/wechat-go,微信 web 版 API 的 Go 实现,模拟微信网页版的登录/联系人/消息收发等功能。
Go 语言进阶

想要进一步巩固所学知识,这里推荐几个比较进阶的项目:
- rosedb:https://github.com/roseduan/rosedb,一个用 Go 实现的简易高效的 k-v 存储引擎。
- gochat:https://github.com/LockGit/gochat,一个 Go 语言实现的轻量级 im 系统,对网络方面熟悉或者感兴趣的可以看看。
- 7DaysGolang:https://github.com/geektutu/7days-golang,7 天使用 Go 从零实现 web 框架、分布式缓存、ORM 框架,、RPC 框架,代码量不多,但是质量挺不错的。
Web 开发

推荐几个使用 Go 构建的基础 web 项目:
- gin-vue-admin:https://github.com/flipped-aurora/gin-vue-admin,使用 Gin 框架构建的后台管理系统。
- ferry:https://github.com/lanyulei/ferry,基于 Gin + Vue + Element UI 前后端分离的工单系统。
- go-admin:https://github.com/go-admin-team/go-admin,Gin + Vue + Element UI 的前后端分离权限管理系统。
微服务
Go 语言的微服务框架有 GoKit、GoMicro、go-zero、kratos,可以随便选择一个,理解其基本的用法、设计等等。其中 go-zero 和 kratos 是国内开源的,因此都有比较详细的中文文档。
这里推荐一个在线学习的资料:
手把手实现一个简单的 Go 微服务项目,你可以通过这个项目来学习微服务的相关知识,并且有中文版。
