语言基础:包括基本语法、数据类型、变量、常量、运算符、流程控制语句等
函数:包括函数的定义和参数传递、匿名函数等
数组、切片和map:包括数组、切片和map的定义、初始化、添加、删除操作
结构体和指针:包括定义、访问、操作
接口和类型断言:包括接口定义、类型断言操作
并发编程:包括goroutine、channel、锁等
文件和网络编程:包括文件和网络编程的基本概念和实现方式
坚持刷题 看题解 看视频
Web基础和数据库高度相关,学习Web主要掌握路由、中间件、参数绑定、渲染模板等功能;学习数据库主要学习Go如何使用SQL对数据库进行数据存储,以及ORM框架如GORM的使用。
目前比较流行的GoWeb框架有Gin、Echo、Beego、Iris等
【Gin框架】
主要是阅读Gin框架的文档和示例代码,了解gin的API和特性,例如路由、中间件、JSON解析等
文档 | Gin Web Framework (gin-gonic.com)
+b站视频
【sqlx】
sqlx是一个基于Go语言的第三方库,它提供了一组扩展了标准库database/sql的功能。
【GORM】
GORM提供了一种简单的方法来处理关系型数据库操作。ORM代表对象关系映射,允许将对象模型映射到关系型数据库模型中,从而简化数据访问。
https://gorm.io/
【Redis】
这里的学习主要是熟悉API操作
https://redis.uptrace.dev/zh/
源码
阅读Go的源代码是理解Go语言的关键步骤。可以从标准库开始,逐渐深入了解Go的内部工作原理。学习过程中重点查看一些Go的实现细节和设计决策,如Go的内存模型、调度器、垃圾回收等。
https://pkg.go.dev/std
Go设计模式
学习设计模式可以解决复杂的软件设计问题,提高代码的可重用性、可维护性和可扩展性,属于编程的内功
【Docker】
https://www.docker.com/
【K8s】
https://kubernetes.io/zh-cn/docs/home/
gRPC、Istio和micro都是基于云原生架构的微服务框架,都支持使用微服务架构构建云原生应用程序。学一个掌握思想就可以了。
【gRPC】
Google开发的开源RPC框架,使用Protocol Buffer作为默认的消息序列化机制。
https://grpc.io/
根据职位要求做几个拿得出手的项目
更好地掌握开发的细节实现和架构设计,加深动手实践能力。
git+github(3)
【go-admin】
基于Golang和Vue的后台管理系统框架,支持MySQL、PostgreSQL等多种数据库,包括文件上传、验证码、邮件发送、权限验证等功能,可以自己尝试造一遍。
https://www.go-admin.pro/
【七天实现Web框架】
https://geektutu.com/post/gee.html
第一天:前置知识(http.Handler接口)
第二天:上下文设计(Context)
第三天:Trie树路由(Router)
第四天:分组控制(Group)
第五天:中间件(Middleware)
第六天:HTML模板(Template)
第七天:错误恢复(Panic Recover)
【7天实现分布式缓存】
https://geektutu.com/post/geecache.html
第一天:LRU 缓存淘汰策略
第二天:单机并发缓存
第三天:HTTP 服务端
第四天:一致性哈希(Hash)
第五天:分布式节点
第六天:防止缓存击穿
第七天:使用 Protobuf 通信
【七天实现ORM】
https://geektutu.com/post/geeorm.html
第一天:database/sql 基础
第二天:对象表结构映射
第三天:记录新增和查询
第四天:链式操作与更新删除
第五天:实现钩子(Hooks)
第六天:支持事务(Transaction)
第七天:数据库迁移(Migrate)
【七天实现RPC】
https://geektutu.com/post/geerpc.html
第一天:服务端与消息编码
第二天:支持并发与异步的客户端
第三天:服务注册(service register)
第四天:超时处理(timeout)
第五天:支持HTTP协议
第六天:负载均衡(load balance)
第七天:服务发现与注册中心(registry)
1. 身份识别与访问管理系统
2. 基于 Go 的仿百度网盘项目
3. Go 语言优秀资源整理
4. 读者推荐的 Golang 开发者
5. 流量录制回放工具
6. 数据管理平台
7. Go 学习库
算法
csapp
go语言高级编程
经典面试题
每天学点八股文
后端开发:用于开发 Web 服务器、API 服务、微服务、分布式系统等后端应用,越来越多的公司技术上开始向Go迁移。
基础设施开发:基于K8s开发本公司的基础平台,京东、TiDB用Go搭建自己的分布式存储系统。
游戏服务器开发:用Go开发服务器效率很高,性能也不错,这部分主要工作是编写游戏逻辑、网络通信等模块。
区块链:区块链需要高度安全性和并发性,用 Go 进行区块链开发很合适。目前许多主流的区块链项目,如 Ethereum、Hyperledger Fabric、Cosmos SDK 等都采用了 Go 作为主要开发语言。