Skip to content

Go 语言学习

这份笔记用来梳理 Go 的完整学习路径,不只追求会写语法,而是从语言设计、并发模型、工程实践到服务落地,逐步建立可用于真实项目的知识体系。

更详细的学习还是请参见:Go 语言学习指南

学习目标

  • 理解 Go 的核心语法、类型系统与错误处理方式
  • 建立对 goroutine、channel、context 的系统认知
  • 掌握标准库中最常用的网络、I/O、测试与并发工具
  • 能独立完成一个可部署的后端服务
  • 具备基础的性能分析、调试与工程化能力

Roadmap

第一阶段:入门与语言基础

第二阶段:进阶语法与工程能力

  • 包管理与模块化组织
  • 接口抽象与依赖解耦
  • 泛型基础与常见使用场景
  • 反射机制及其适用边界
  • 常见设计模式在 Go 中的实现方式
  • 常见代码规范、lint 与格式化工具

第三阶段:并发编程

  • goroutine 调度模型
  • channel 通信模型与常见模式
  • select、超时控制与退出机制
  • context 的取消、超时与链路传递
  • sync 包:互斥锁、读写锁、WaitGroup、Once、Pool
  • 并发安全、竞态条件与死锁排查

第四阶段:标准库与服务开发

  • 文件 I/O、缓冲、序列化与反序列化
  • 时间处理、日志、配置管理
  • net/http 与 HTTP 服务开发
  • JSON API、参数校验与中间件设计
  • 数据库访问:database/sql、连接池、事务
  • Web 框架选型与实践:Gin

第五阶段:测试、调试与性能优化

  • 单元测试、表驱动测试与 benchmark
  • mock、依赖注入与可测试性设计
  • pprof 性能分析
  • 内存逃逸、GC 基础与对象分配优化
  • 常见性能瓶颈定位方法
  • 调试工具与线上问题排查思路

第六阶段:工程化与云原生

  • 配置分层、日志规范与错误追踪
  • Docker 化部署与多环境管理
  • gRPC 与微服务通信
  • 消息队列、缓存与任务系统
  • 可观测性:metrics、tracing、logging
  • Go 在 Kubernetes / 云原生生态中的角色

第七阶段:源码与底层机制

  • runtime 基础:内存分配、调度器、栈增长
  • channel 与 map 的底层实现
  • interface 内部表示
  • GC 工作机制与优化方向
  • 编译流程与常见编译参数
  • 标准库源码阅读方法

上次更新于: