我是大叔,致力于分享Go语言知识,希望可以把你少走一些弯路
建议你花 5 钟读完这篇文章,可以帮你节省100% 的寻找答案的时间,一定要坚持读到最后。
收藏的知友记得点个赞,大叔花了不少时间搜集整理,让好东西值得更多人看到
大叔在 Golang 学习导航中发现一些不错的学习资源
涉及学习路线图,学习书籍、学习教程。
相信通过这些资源,你可以进阶 Go 语言。
Go语言学习路线图
「Go语言学习指南」一份涵盖大部分 Golang 程序员所需要掌握的核心知识,拥有 Go语言教程、Go开源书籍、Go语言入门教程、Go语言学习路线。零基础学习 Go语言、Go编程,首选 GoGuide。
项目地址:GitHub - coderit666/GoGuide: 「Go语言学习指南」一份涵盖大部分 Golang 程序员所需要掌握的核心知识,拥有 Go语言教程、Go开源书籍、Go语言入门教程、Go语言学习路线。零基础学习 Go语言、Go编程,首选 GoGuide。

如果你能掌握这些知识点,那么我认为你基本上掌握 Golang 这门语言的大部分知识点。
Go 语言学习资料大全

大叔是比较建议你去学习 Go 入门教程
这个教程堪称全网最优质的入门教程。
俗话说的好,基础不牢,地动山摇。
30 天入门 Go 语言
Day3: C语言与Go语言对比学习(关键字、标识符、注释等系列知识)
Go 语言开源项目
GoGuide
项目地址:https://github.com/coderit666/GoGuide
「Go语言学习指南」一份涵盖大部分 Golang 程序员所需要掌握的核心知识,拥有 Go语言教程、Go开源书籍、Go语言入门教程、Go语言学习路线。零基础学习 Go语言、Go编程,首选 GoGuide。
LeetCode-Go
是一个包含许多算法问题的网站。其中大部分是谷歌、Facebook、LinkedIn、Apple等的真实面试问题,它总是有助于提高我们的算法技能。提升您的编码技能并快速找到工作。这是扩展您的知识并为下一次面试做好准备的最佳场所。
开源项目地址: https://github.com/halfrost/LeetCode-Go
gin-vue-admin
基于vite+vue3+gin搭建的开发基础平台,集成jwt鉴权,权限管理,动态路由,分页封装,多点登录拦截,资源权限,上传下载,代码生成器,表单生成器等开发必备功能,五分钟一套CURD前后端代码。
项目地址:https://github.com/flipped-aurora/gin-vue-admin
go-fundamental-programming
借用《Go Web 编程》一书中的话,出本套教程并不代表我自身的能力有多强,而是我愿意将自己在学习过程中积累到的知识分享给大家,并结合自己遇到的一些坑爹经历来讲解如何处理各种奇葩问题,从而更好地帮助广大的和潜在的 Go 语言爱好者。
项目地址:https://github.com/unknwon/go-fundamental-programming
go-ast-book
《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言。
项目地址:https://github.com/chai2010/go-ast-book
7days-golang
7天用 Go 从零实现系列
7天用Go从零实现Web框架 - Gee
Gee 是一个模仿 gin 实现的 Web 框架,Go Gin简明教程可以快速入门。
- 第一天:前置知识(http.Handler接口) | Code
- 第二天:上下文设计(Context) | Code
- 第三天:Trie树路由(Router) | Code
- 第四天:分组控制(Group) | Code
- 第五天:中间件(Middleware) | Code
- 第六天:HTML模板(Template) | Code
- 第七天:错误恢复(Panic Recover) | Code
7天用Go从零实现分布式缓存 GeeCache
GeeCache 是一个模仿 groupcache 实现的分布式缓存系统
- 第一天:LRU 缓存淘汰策略 | Code
- 第二天:单机并发缓存 | Code
- 第三天:HTTP 服务端 | Code
- 第四天:一致性哈希(Hash) | Code
- 第五天:分布式节点 | Code
- 第六天:防止缓存击穿 | Code
- 第七天:使用 Protobuf 通信 | Code
7天用Go从零实现ORM框架 GeeORM
GeeORM 是一个模仿 gorm 和 xorm 的 ORM 框架
gorm 准备推出完全重写的 v2 版本(目前还在开发中),相对 gorm-v1 来说,xorm 的设计更容易理解,所以 geeorm 接口设计上主要参考了 xorm,一些细节实现上参考了 gorm。
- 第一天:database/sql 基础 | Code
- 第二天:对象表结构映射 | Code
- 第三天:记录新增和查询 | Code
- 第四天:链式操作与更新删除 | Code
- 第五天:实现钩子(Hooks) | Code
- 第六天:支持事务(Transaction) | Code
- 第七天:数据库迁移(Migrate) | Code
7天用Go从零实现RPC框架 GeeRPC
GeeRPC 是一个基于 net/rpc 开发的 RPC 框架 GeeRPC 是基于 Go 语言标准库 net/rpc
实现的,添加了协议交换、服务注册与发现、负载均衡等功能,代码约 1k。
- 第一天 - 服务端与消息编码 | Code
- 第二天 - 支持并发与异步的客户端 | Code
- 第三天 - 服务注册(service register) | Code
- 第四天 - 超时处理(timeout) | Code
- 第五天 - 支持HTTP协议 | Code
- 第六天 - 负载均衡(load balance) | Code
- 第七天 - 服务发现与注册中心(registry) | Code
golang-design-pattern
设计模式 Golang实现-《研磨设计模式》读书笔记
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
- 创建者模式(Builder)
- 原型模式(Prototype)
- 单例模式(Singleton)
行为型模式
- 中介者模式(Mediator)
- 观察者模式(Observer)
- 命令模式(Command)
- 迭代器模式(Iterator)
- 模板方法模式(Template Method)
- 策略模式(Strategy)
- 状态模式(State)
- 备忘录模式(Memento)
- 解释器模式(Interpreter)
- 职责链模式(Chain of Responsibility)
- 访问者模式(Visitor)
mindoc
Golang实现的基于beego框架的接口在线文档管理系统
项目地址:https://github.com/mindoc-org/mindoc
Go 语言视频教程
Go 语言开发建议
Go 箴言
- 不要通过共享内存进行通信,通过通信共享内存
- 并发不是并行
- 管道用于协调;互斥量(锁)用于同步
- 接口越大,抽象就越弱
- 利用好零值
- 空接口
interface{}
没有任何类型约束 - Gofmt 的风格不是人们最喜欢的,但 gofmt 是每个人的最爱
- 允许一点点重复比引入一点点依赖更好
- 系统调用必须始终使用构建标记进行保护
- 必须始终使用构建标记保护 Cgo
- Cgo 不是 Go
- 使用标准库的
unsafe 包,不能保证能如期运行
- 清晰比聪明更好
- 反射永远不清晰
- 错误是值
- 不要只检查错误,还要优雅地处理它们
- 设计架构,命名组件,(文档)记录细节
- 文档是供用户使用的
- 不要(在生产环境)使用
panic()
Author: Rob Pike See more: https://go-proverbs.github.io/
Go 之禅
- 每个 package 实现单一的目的
- 显式处理错误
- 尽早返回,而不是使用深嵌套
- 让调用者处理并发(带来的问题)
- 在启动一个 goroutine 时,需要知道何时它会停止
- 避免 package 级别的状态
- 简单很重要
- 编写测试以锁定 package API 的行为
- 如果你觉得慢,先编写 benchmark 来证明
- 适度是一种美德
- 可维护性
最后,如果觉得大叔的分享对你有帮助,欢迎关注我
文章来源于互联网:Go语言后端开发如何规划学习路线?