参考资料
1. 先决条件
1.1 Go基础
- GO命令行操作
- 变量、常量、类型、函数、包等
- 数组、切片
- 指针、结构、方法
- 接口
- 协程、信道、缓冲区、select、互斥锁Mutex
- defer机制、错误、panic异常、恢复recover
1.2 Go模组
- 学习Go依赖管理工具
- 语义版本控制(Samantic Versioning)
- 版本,脚本,存储库及其它特性
1.3 SQL基础原理
- 基础SQL语法
2. 基本开发技能
2.1 代码管理工具
- GIT
2.2 网络协议
- HTTP/HHTPS
2.3 数据结构和算法
- 数组
- 排序
2.4 项目策略
- Scrum
- 看板(Kanban)
2.5 中间件
- 基本Authentication
- OAuth
- JWT
2.6 设计原则
- SOLID
- YAGNI
- KISS
3. 数据库
3.1. 关系数据库
- MySql
- SQL Server
- PostgreSQL
- CockroachDB
3.2. NoSQL
- MongoDB
- Redis
3.3. 云数据库
- Azure CosmosDB
- Amazon DynamoDB
3.4. 搜索引擎
- ElasticSearch
- Soir
- Sphinx
3.5. 时序数据库
- clickhouse
4. 提高技能
4.1. 命令行界面
- cobra
- urfave/cli
4.2. 网络框架+路由
- Echo
- gin
- Beengo
- Revel
- Chi
4.3. 对象关系映射
- Gorm
- Xorm
4.4. 高速缓存(Caching)
- GCache
- 分布式缓存(Distributed Cache)
– Go-Redis
– GoMemcache
4.5 日志框架(Log Framework)
- Zap
- ZeroLog
- Logrus
- 日志管理系统
– Sentry.io
– loggly.com
4.6 实时通讯
- Melody
- Centrifugo
4.7 API客户端
- REST
– Gentieman
– GRequests
– Heimdall - GraphQL
– gpogen
– graphql-go
4.8 测试
-
单元测试(Unit Testing)
– GoMock
– Testify
– Ginkgo
– GoMega
– GoCheck -
行为测试
– GoDog
– GoConvey
– GlinkGo -
集成测试
– Testify
– GlinkGo -
端对端测试
– Endly
– Selenium
4.9 微服务
- 消息代理
– RabbitMQ
– Apache Kafka
– ActiveMQ
– Azure Service Bus - 消息总线
– Message-Bus - 框架
– Go-kit
– Micro
– rpcx - RPC
– Protocol Buffers
– gRPC-Go
– gRPC-gateway
4.10 任务调度
- gron
- jobrunner
4.11 Go模式
- Creational
- Stuctrul
- Behavioral
- synchronization
- Concurrency
- Messaging
- Stability
4.12 最好知道的库
- Validator
- Glow
- GJson
- Authboss
- Go-Underscore
GO相关书籍
语法:
《Go 程序设计语言》:Go 语言圣经,中译资料
《Go 语言趣学指南》
《Go 专家编程》
实战:
《GoWeb 编程》:Go 语言 Web 编程基础
《Go 并发编程实战》:非常好的 go 并发原理解读书籍,但语言组织欠佳
《Go 语言高并发与微服务实战》:试看中
《Go 语言编程之旅:一起用 Go 做项目》:试看中
深入:
《Go 语言学习笔记》:言简意赅,深入浅出,力荐
《Go 语言高级编程》:深入理解 Go 必备,开源文档