Skip to content

zzhirong/GoBackendJourney

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

Go 后端学习之旅

阶段一:Go 基础与环境搭建

  • 相关书籍
    • Learning Go
    • Go Programming Language
  • 搭建本地的 Go 开发环境
    • 安装 Go SDK
    • 配置 Neovim + gopls
    • dlv 调试
      • dlv run main.go
  • 掌握 Go 语言基础语法
    • 变量
    • 数据类型
    • 运算符
    • 控制结构
    • 函数
  • 学习 Go 的包管理和模块化 (go mod)
  • 理解错误处理 (error 和 panic/recover)
  • 掌握并发编程基础
    • goroutine
    • channel
    • Context
    • Mutex
    • WaitGroup
    • select
  • 理解面向接口编程 (interface)
  • 学习 Go 的测试框架 (testing)
  • 熟悉 Go 标准库常用包
    • fmt
    • os
    • io
    • strings
    • strconv
    • time
  • 泛型
  • 源码阅读
    • fmt 包:了解格式化输出的实现
    • io 包:了解输入输出的抽象
  • 常见错误:

阶段二:网络编程与 Web 框架

  • 掌握网络编程基础
    • TCP/IP 协议
    • HTTP 协议
  • 学习 Go 网络编程
    • net 包
    • http 包
  • 选择 Web 框架
    • gin
    • gin-contrib: 提供各种常用的中间件,比如用于处理 CORS、JWT 认证等。
    • air 可以在检测到源码改动后,重新构建运行程序。
      • air init
      • air
    • echo
    • mux
  • 理解路由、中间件、请求处理、响应处理
  • 学习 JSON 处理 (encoding/json)
  • 学习 HTML 模板引擎 (html/template)
  • 理解 RESTful API 设计原则
  • 源码阅读
    • net/http 包:理解 HTTP 服务器如何工作
    • 选择的网络框架的源码
  • 编写简单的 HTTP 服务,熟悉 Web 开发流程
  • 学习 API 文档编写 (例如 Swagger)

阶段三:数据库与 ORM

  • 掌握 SQL 基础
    • CRUD
    • JOIN
    • 索引
  • 学习关系型数据库或 NoSQL 数据库
    • MySQL
    • Redis
    • PostgreSQL
    • MongoDB
  • 理解数据库连接池
  • 学习 ORM 框架
    • gorm
    // 可以打开 gorm 底层执行的 SQL 语句,便于理解 GORM 行为。
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
        Logger: logger.Default.LogMode(logger.Info), 
    })
    • xorm
  • 学习数据库迁移
  • 库使用
    • database/sql (Go 标准库)
    • go-redis/redis/v8 (Redis 客户端)
  • 源码阅读
    • ORM 框架的源码
    • database/sql
  • 选择一个数据库,并尝试连接和操作

阶段四:测试、部署和微服务

  • 掌握单元测试和集成测试
  • 理解依赖注入 (DI)
  • 学习 Docker 和 Docker Compose
  • 理解 CI/CD (GitHub Actions, Jenkins)
  • 学习微服务架构概念
  • 理解 API 网关、服务发现和负载均衡
  • 学习消息队列
    • RabbitMQ
    • Kafka
  • 库使用
    • testify/assert
    • 选择一个 API 网关/服务发现框架
  • 编写简单的微服务,学习微服务设计的实践
  • 尝试使用 Docker 部署你的应用

阶段五:深入学习与拓展

  • 深入学习 Go 语言的内存模型和并发机制
  • 学习性能优化技巧
  • 学习设计模式
  • 理解缓存、限流、熔断等技术
  • 库使用
    • uber-go/fx (依赖注入)
    • prometheus/client_golang (监控)
  • 源码阅读
    • Go Runtime 的源码 (调度器、垃圾回收等)
  • 关注 Go 社区的最新动态,参与开源项目
  • 不断学习新技术和新工具

其他

About

个人 Golang 后端开发学习路线。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published