Go学习路径

参考资料

Go学习路线

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 必备,开源文档

### Golang 学习路线图:从入门到进阶 学习一门编程语言需要有清晰的目标和规划,以下是针对 Golang学习路线图,涵盖了从基础到高级的内容。 #### 一、基础知识阶段 在这个阶段,主要目标是掌握 Go 编程的基础语法以及核心概念。可以通过以下资源进行学习: - **菜鸟教程** 提供了一个简洁明了的入门指南[^2]。 - 地鼠文档提供了详细的 API 和标准库说明[^2]。 重点内容包括但不限于变量声明、数据类型、控制结构、函数定义等基本知识点。这些内容可以帮助初学者快速熟悉这门语言的核心特性。 #### 二、中级提升阶段 当掌握了基础之后,就可以进入更加深入的学习环节。此阶段的重点在于理解并发模型 Goroutine 及 Channel 的工作原理及其实际应用场景分析[^4]。同时还需要了解错误处理机制、接口设计原则等方面的知识点。 对于这一层次的学习者来说,《The Way To Go》这本书籍非常适合作为参考资料之一因为它不仅讲解了如何编写高效优雅代码而且还涉及到了很多工程实践方面的技巧[^3]。 另外还可以通过观看一些高质量的教学视频来加深印象比如老男孩教育平台上的系列课程就很不错[^2]。 #### 三、高级应用开发 达到一定水平后,则应该把注意力转向更大规模的应用构建上面去考虑性能优化等问题并尝试参与开源项目贡献自己的力量从而获得更多的实战经验. 此时可以阅读《Concurrency in Go》这样的专著进一步探索多线程环境下程序运行规律;同时也鼓励大家多多查阅官方文档因为那里往往隐藏着许多宝贵的信息等待挖掘发现[^1]. 最后附上一段简单的演示代码用于展示goroutines的基本用法: ```go package main import ( "fmt" "time" ) func say(s string){ for i:=0;i<5;i++{ time.Sleep(100*time.Millisecond) fmt.Println(s) } } func main(){ go say("world") //启动一个新的goroutine执行say函数 say("hello") } ``` 以上就是关于Golang整个学习路径的一个概括介绍希望能够对你有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值