不了解Golang一上来就练一些项目,可能会处处受挫,打击学习信心。

如果你是第一次接触Go,建议先从基础的入门开始,由易到难,循序渐进式学习,可以少走一些弯路。

我整理了一份自学干货,会按照由入门基础>>>小项目练手推荐>>>大项目参考了解架构思路,由易到难的顺序给大家分享,希望能帮助你更快掌握这门强大的语言。

1.《Go 入门指南》

29.6k stars

首先必须推荐《Go 入门指南》,这本开源书籍是unknown Joe Chen苦于当时国内没有比较好的 Go 语言书籍,所以翻译了这本国外书籍《The Way to Go》。现在以开源的形式免费分享给有需要的 Go 语言爱好者。

书籍部分目录参考

这本书将从最基础的概念讲起,然后逐步深入学习Go高级编程技巧,如读写数据、错误处理和测试、协程和通道、网页应用等,内容比较体系易懂,很适合初步学Go语言的同学。

2.从零开始学 Go Web 编程:build-web-application-with-golang

40.3k stars

作者astaxie从零开始:从 Go 的环境安装和配置、基本语法再到 Go Web 开发,手把手全面教了一遍。

想要学会Go Wed编程,这本开源书籍不容错过,打好基础,再去做其他的项目才会更加得心应手。

在你打好了一定的基础之后,再挑战一些稍微大的项目练练手,你会更容易领悟到 Go 语言在实际中是如何应用的。

3.Training for Golang (go language)

8.1k stars

这个整合了各种go特性例子代码案例,例子相当丰富且代码行数不多,很适合自己亲自敲一敲跑一跑,你一定会学到不少的东西。

4.七天用 Go 从零实现系列:7days-golang

10.5k stars

这个极客兔兔 大佬分享的7天用Go从零实现系列,包括Web框架 、 分布式缓存、ORM框架、RPC框架、WebAssembly等等,这些500行至3000行的项目,很适合有一定基础的用来练手。

部分目录


从这里开始的项目就有些难度了:

5.Go 数据可视化项目:go-echarts

4.6k stars

在 Golang 这门语言中,目前数据可视化的第三方库还是特别少,go-echarts的开发就是为了填补这部分的空隙。 Apache ECharts是非常优秀的可视化图表库,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。也有其他语言为其实现了相应语言版本的接口,如 Python 的pyecharts,go-echarts 也是借鉴了 pyecharts 的一些设计思想。

你可以挑选对自己最有帮助的数据可视化模型代码来研究学习,然后一个个攻破。

可视化图表库1
可视化图表库2
可视化图表库3




Go项目进阶:

从这里的开始项目体系比较庞大,难度也较大,不过项目都挺优秀的,可以了解项目的设计理念,整理分享给大家,大家量力而行:

6.gochat

1.8k stars

gochat 是纯 Go 实现的轻量级即时通讯系统。技术上各层之间通过 RPC 通讯,使用 Redis 作为消息存储与投递的载体,相对 Kafka 操作起来更加方便快捷。各层之间基于 etcd 服务发现,在扩容部署时将会方便很多。架构、目录结构清晰,文档详细。而且还提供了 Docker 一键构建,安装运行都十分方便。

7.API框架

3.4k stars

基于 Gin 进行模块化设计的 API 框架,封装了常用功能,使用简单,致力于进行快速的业务研发。 比如,支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用、cron 定时任务 等等。

8.容器技术docker

63.1k stars

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。


9.PaaS工具 kubernetes

88.5k stars

Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。


10.数据库技术 pingcap/tidb

31.3k stars

TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库。其灵感来自于 Google 的 F1, TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。


11.gohugoio

59k stars

Hugo是由Go语言实现的静态网站生成器;简单、易用、高效、易扩展、快速部署;相比于Hexo、Jekyll,hugo的优势是生成速度极快。


12.存储技术 IPFS

13.6k stars

IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。IPFS = InterPlanetary File System

内容整理不易,如果觉得有帮助,感谢点个赞支持一下吧!

@ApeClass学编程 之后还会继续给大家带来更多编程干货,帮助大家更高效学编程!