开发学习路线
# 开发路线
# Go开发学习路线
# Go的基础学习路线
# Go 语言中文网 - Go 语言入门教程
网站链接: http://c.biancheng.net/golang/
# 菜鸟教程 - Go 语言教程
网站链接: https://www.runoob.com/go/go-tutorial.html
# W3Cshcool - Go 教程
网站链接: https://www.w3cschool.cn/go/
# Go by Example
网站链接: https://gobyexample.com/
# 地鼠文档
网站链接: https://www.topgoer.cn/
# 一、初识Go
- Go起源
- Go语言适用场景
- Go开发环境
# 二、基础要素
- hello,world
- 命名规范
- 包
- 变量
- 常量
- 作用域
- 编译和运行
# 三、基本数据类型
- 整型
- 特殊整型
- 浮点型
- 复数
- 布尔值
- 字符串
- 字符
# 四、流程控制
- 条件
- 循环
- 控制
# 五、函数
- 作用
- 定义
- 参数
- 返回值
- 匿名函数
- 自执行函数
- 闭包
- 错误处理机制
- 常见函数、关键字
# 六、复合数据类型
- struct
- 指针
- 数组
- map
- interface
- json
# 七、面向对象
- 封装
- 继承
- 多态
# 八、泛型
- 作用
- 声明
- 泛型约束
# 九、并发
- goroutine
- channel
- select
- 同步
# 十、反射
- 基本概念
- reflect包
- 结构体标签
# Go的高级学习路线
# mojotv 博客
网站链接: https://mojotv.cn/
# 煎鱼 - Go 语言设计哲学
网站链接: https://golang3.eddycjy.com/
# Go 夜读
网站链接: https://talkgo.org/
# 书籍推荐
# Go的框架学习路线
# Gin
项目地址: https://github.com/gin-gonic/gin
一个完全由 Go 语言编写而成的 HTTP Web 框架,提供了一个速度更快的、性能更高的 Go 语言 Web 开发框架。
这个框架对于初学者来说很容易上手,而且在 Web 框架中,star 是最多的,使用的人也非常多。
# Beego
项目地址: https://github.com/beego/beego
Beego 是一款由 Go 语言开发专家 Asta谢 开发的一款简单易用的企业级 Go 应用开发框架,具备全中文的官方网站和教程。
不同于其他框架语言,Beego 不仅仅提供图文教程,还提供了视频教程,这一点对国内的开发人员来讲是非常友好的。
# Iris
项目地址: https://github.com/kataras/iris
Iris 框架在其官方网站上被描述为 Go 开发中最快的 Web 框架,并给出了多框架和多语言之间的性能对比。
如果你正在选择一款性能不错、轻量级且简单易上手的 Go 语言 Web 开发框架,Iris 是一个不错的选择。
# Echo
项目地址: https://github.com/labstack/echo
Echo 是个快速的 HTTP 路由器(零动态内存分配),也是 Go 的微型 Web 框架。
其具备快速 HTTP 路由器、支持扩展中间件,同时还支持静态文件服务、WebSocket 以及支持制定绑定函数、制定相应渲染函数,并允许使用任意的 HTML 模版引擎。
# GoFrame
项目地址: https://github.com/gogf/gf
GoFrame 是一款模块化、高性能、企业级的 Go 基础开发框架。GoFrame 不是一款 WEB/RPC 框架,而是一款通用性的基础开发框架,是 Golang 标准库的一个增强扩展级,包含通用核心的基础开发组件。
优点是实战化、模块化、文档全面、模块丰富、易用性高、通用性强、面向团队。
总体来说,这个项目具有完善的中文文档和周边开发库,活跃的 issue 讨论区,项目模块化设计很好。
这 5 个开源项目各有优劣,有的已经被市场验证,使用广泛;有的作为后起之秀,发展迅速。
大家可以挑选自己感兴趣的来学习和使用。
# id-maker
项目地址: https://github.com/yongxinz/id-maker
Go 开发的一款分布式唯一 ID 生成系统。
代码量少,项目整体难度小,通过这个项目可以学习到 httpServer,gRPC 相关知识。
# cache2go
项目地址: https://github.com/muesli/cache2go
比较简单的一个缓存库,代码量很少,适合新手学习。通过这个项目可以学习到锁、goroutine 等知识。
# rosedb
项目地址: https://github.com/flower-corp/rosedb
rosedb 是一个稳定、高性能、快速、内嵌的 k-v 存储引擎,支持多种数据结构,包含 String、List、Hash、Set、Sorted Set,接口名称风格和 Redis 类似。
项目使用纯 Golang 实现,Go 语言的绝大部分基础知识点都包含了,相信一定是学习和巩固 Golang 的很不错的项目。
除此之外,代码中还有一些数据结构的实现,所以同时也能学习一下数据结构的知识。
# wechat-go
项目地址: https://github.com/songtianyi/wechat-go
这是微信 Web 版 API 的 Go 语言实现,模拟微信网页版的登录/联系人/消息收发等功能,可以完全接管微信收到的消息,并定制自己的发送内容。
我觉得这个项目还是挺有趣的,用来操作一下微信,能够体会到更多学习的乐趣。
# gin-vue-admin
项目地址: https://github.com/flipped-aurora/gin-vue-admin
gin-vue-admin 是一个使用 gin + vue 进行极速开发的全栈后台管理系统,后台使用 gin 框架,前端主要使用 vue。
项目的目录结构非常清晰,包名语义化,能够帮助你快速上手学习。
这个项目还使用到了一些流行的 Go 开源库及中间件,例如:
- gin:最流行的 Go 语言 Web 框架
- gorm:数据库操作中间件
- zap:uber 开源的 Go 语言日志库
- redis:k-v 缓存
除此之外,这个项目还有详细的中文文档,并且配套教学视频,值得学习。
# Go的实用工具
随着编辑器的逐渐强大,有一些小而美的网站的功能已经被编辑器取代了,但依旧不妨碍我喜欢它们,下面都推荐给大家。
# JSON to Go struct
网站链接: https://mholt.github.io/json-to-go/
# YAML to Go struct
网站链接: https://zhwt.github.io/yaml-to-go/
# Table to Go struct
网站链接: https://github.com/gohouse/converter
使用方式分两种,分别是命令行调用和写 Go 代码。两种方式都不复杂,具体见这篇文章:推荐三个实用的 Go 开发工具 (opens new window)
# Rego
网站链接: http://regoio.herokuapp.com/
# plantUML
网站链接: https://www.dumels.com/
# Playground
网站链接: https://go.dev/play/