21天以实例精通Go服务开发

Table of Contents

第一部分:基础篇(Day 1 - Day 7)—— 打牢Go编程与服务开发根基

  • Day 1:Go 开发环境与工具链

    • Go Modules、依赖管理
    • 常用 IDE(VSCode、GoLand)与调试技巧
    • 使用 go test 进行单元测试
  • Day 2:数据结构与 map 底层

    • LeetCode 示例:两数之和(HashMap 应用)
    • Go 中 map 的键比较规则,底层实现
    • 最佳实践:map 并发访问与 sync.Map
  • Day 3:切片与内存模型

    • LeetCode 示例:三数之和 / 滑动窗口
    • 切片扩容机制、内存逃逸
    • 实战:写一个安全的分页查询函数
  • Day 4:并发基础

    • goroutine 与调度原理
    • LeetCode 示例:生产者-消费者模型(多线程版)
    • 实战:用 channel 实现工作池
  • Day 5:错误处理与上下文

    • Go 错误处理哲学
    • context.Context 的用法(超时、取消、请求范围数据)
    • 实战:写一个带超时的 HTTP 客户端
  • Day 6:Go 接口与多态

    • LeetCode 示例:LRU 缓存(结合接口与结构体)
    • 接口设计的最佳实践(参考 Uber Go Style)
    • 实战:写一个可替换存储引擎(内存/文件)
  • Day 7:单元测试与基准测试

    • Go testing 框架、基准测试
    • LeetCode 示例:排序算法对比基准测试
    • 实战:mock 数据库、mock HTTP server

第二部分:服务篇(Day 8 - Day 14)—— 构建高质量 Go 服务

  • Day 8:Go Web 框架快速上手

    • 标准库 net/http vs Gin/Fiber
    • 实战:实现用户注册登录接口
  • Day 9:数据存储与 ORM

    • SQL 与 NoSQL 选择
    • 使用 GORM 访问 MySQL
    • LeetCode 示例:数据库模拟题(员工关系/日志统计)
    • 实战:任务管理表设计 + CRUD 接口
  • Day 10:配置管理

    • Viper 使用
    • 12-Factor App 配置最佳实践
    • 实战:多环境配置加载(dev/staging/prod)
  • Day 11:日志与监控

    • zap、logrus 使用
    • OpenTelemetry、Prometheus metrics
    • 实战:请求链路追踪(TraceID)
  • Day 12:RESTful API 设计

    • OpenAPI/Swagger 文档
    • 分页、排序、错误码设计
    • 实战:任务列表 API
  • Day 13:gRPC 与微服务通信

    • Protobuf 使用
    • gRPC 服务与客户端实现
    • 实战:提醒服务与任务服务通信
  • Day 14:认证与鉴权

    • JWT、OAuth2
    • Casbin RBAC 模型
    • 实战:实现基于角色的任务权限控制

第三部分:进阶篇(Day 15 - Day 21)—— 工程化与微服务最佳实践

  • Day 15:缓存与性能优化

    • LeetCode 示例:前缀和、LRU 缓存优化
    • Redis 在微服务中的应用
    • 实战:为任务查询增加缓存
  • Day 16:消息队列与异步任务

    • Kafka、NATS、RabbitMQ 简介
    • 实战:任务提醒推送异步化
  • Day 17:服务注册与发现

    • etcd、Consul、Nacos
    • gRPC + etcd 服务发现实践
  • Day 18:容器化与部署

    • Dockerfile 最佳实践
    • CI/CD(GitHub Actions/GitLab CI)
    • 实战:构建并发布任务服务镜像
  • Day 19:Kubernetes 微服务部署

    • Deployment、Service、Ingress
    • ConfigMap、Secret、Helm
    • 实战:任务系统在 k8s 上部署
  • Day 20:弹性与容错

    • 熔断、限流、重试
    • Go 实现 Hystrix 模式
    • 实战:任务提醒服务的容错处理
  • Day 21:综合项目演练

    • 项目回顾:任务管理 + 提醒系统
    • 接口文档、架构设计
    • 压测与优化
    • 最佳实践总结

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: 似水流年