1. 前言
  2. 1. 关于本书籍
  3. 2. 为什么选择go
  4. Go开发环境搭建
  5. 3. 环境搭建
    ❱
    1. 3.1. 集成开发环境
    2. 3.2. 第一个go程序
  6. Go语言基础
  7. 4. go语言基础
    ❱
    1. 4.1. 常量
    2. 4.2. 变量
    3. 4.3. 基本类型
    4. 4.4. 字符串
    5. 4.5. 数组和切片
    6. 4.6. map
    7. 4.7. 指针类型
    8. 4.8. 运算
    9. 4.9. 流程控制
    10. 4.10. 函数
    11. 4.11. 结构体和方法
    12. 4.12. package和可见性
    13. 4.13. goroutine和channel
    14. 4.14. interface
    15. 4.15. 反射
    16. 4.16. 错误处理
    17. 4.17. panic和recover
  8. Go标准库
  9. 5. go标准库
    ❱
    1. 5.1. strings包
    2. 5.2. bytes包
    3. 5.3. fmt格式化输入输出
    4. 5.4. 文件读写
    5. 5.5. time时间和日历
    6. 5.6. flag命令行参数解析
    7. 5.7. json序列化
    8. 5.8. log程序日志
    9. 5.9. strconv字符串和其他基本类型转换
    10. 5.10. sort排序
  10. Go项目管理
  11. 6. go项目管理
    ❱
    1. 6.1. go包依赖管理
    2. 6.2. go单元测试
    3. 6.3. go cmd
  12. Go并发编程
  13. 7. 并发和并行
    ❱
    1. 7.1. 原子操作
    2. 7.2. goroutine同步
    3. 7.3. 条件变量
    4. 7.4. 使用channel做goroutine同步
    5. 7.5. sync once
    6. 7.6. 并发安全map
    7. 7.7. sync pool
    8. 7.8. 同步拓展方案-semaphore
    9. 7.9. 同步拓展方案-singleflight
    10. 7.10. 同步拓展方案-errgroup
  14. Go web服务
  15. 8. go web服务
    ❱
    1. 8.1. http参数获取和http-client
    2. 8.2. http请求参数校验
    3. 8.3. web服务框架
  16. Go数据库编程
  17. 9. go使用mysql
    ❱
    1. 9.1. go使用mongodb
    2. 9.2. go使用redis
    3. 9.3. go使用es
  18. Go内嵌kv数据库
  19. 10. 为什么需要内嵌数据库
    ❱
    1. 10.1. boltdb
    2. 10.2. badger
    3. 10.3. goleveldb
  20. Go socket编程
  21. 11. socket编程
    ❱
    1. 11.1. go tcp udp服务
    2. 11.2. go-socks5实现
    3. 11.3. go-websocket
    4. 11.4. 深入理解connection-multiplexing
  22. Go微服务
  23. 12. 微服务
    ❱
    1. 12.1. grpc和protobuf
    2. 12.2. docker
    3. 12.3. 容器编排
    4. 12.4. go-micro微服务框架
  24. Go runtime
  25. 13. go runtime 简介
    ❱
    1. 13.1. go map
    2. 13.2. go channel
    3. 13.3. go调度器
    4. 13.4. go内存分配器(未完)
    5. 13.5. go垃圾回收器(未完)
  26. Go和c语言
  27. 14. cgo简介
    ❱
    1. 14.1. cgo入门
    2. 14.2. cgo的使用场景
    3. 14.3. 指针和内存互访
    4. 14.4. 动态链接和静态链接
  28. Go汇编
  29. 15. go汇编简介(未完)
    ❱
    1. 15.1. go汇编基础(未完)
    2. 15.2. 函数(未完)
    3. 15.3. go汇编使用场景(未完)
    4. 15.4. go汇编笔记
  30. Go分布式系统
  31. 16. 分布式系统简介
    ❱
    1. 16.1. 分布式一致性协议—2PC
    2. 16.2. 分布式一致性协议—Raft
    3. 16.3. 分布式一致性协议—Gossip
    4. 16.4. 分布式全局时间戳
    5. 16.5. Etcd介绍
  32. Go程序调试
  33. 17. go调试器—delve
    ❱
    1. 17.1. GODEBUG追踪调度器
    2. 17.2. GODEBUG追踪gc
  34. Go程序调优
  35. 18. profiling
    ❱
    1. 18.1. 火焰图
    2. 18.2. 内存分析实战
  36. Go实战
  37. 19. go http2 开发
    ❱
    1. 19.1. go语言结构体优雅初始化
    2. 19.2. go程序物理内存占用高的问题
  38. 附录
  39. 20. go泛型
  40. 21. go泛型对传统orm的影响
  41. 22. go1.18workspace
  42. 23. demo代码

Go一站式编程

go的垃圾回收器

参考资料

Golang源码探索(三) GC的实现原理