🚀 Go重构实战
30章 · 从泥沼到架构
🧑🎓
配色 · 快乐重构
01
重构之始:为什么需要重构?
坏味道
面条代码
巨型函数
全局变量泛滥
02
重构基石:Go项目标准布局
cmd
internal
pkg
目录设计
03
依赖管理:GOPATH → Go Modules
私有仓库
版本依赖
优雅管理
04
接口哲学:隐式实现与解耦
业务逻辑
基础设施
接口设计
05
错误处理重构:统一中间件
if err != nil
错误码
自定义错误
06
日志系统重构:结构化日志
zerolog
zap
链路追踪
分级
07
配置管理重构:Viper + 热加载
多环境
热加载
硬编码消除
08
数据库层重构:Repository模式
裸sql.DB
事务管理
连接池
09
HTTP层重构:Gin/Echo框架
中间件链
路由分组
标准库迁移
10
服务层重构:贫血→充血模型
业务封装
复用
领域逻辑
11
依赖注入:Wire / Google Wire
对象创建
生命周期
手工New消除
12
单元测试重构:Table-Driven
Testify
Mock
Table-Driven
13
集成测试重构:Testcontainers
Docker Compose
测试环境
自动化
14
API设计重构:RESTful → gRPC
Protocol Buffers
代码生成
15
中间件重构:可插拔·限流熔断
鉴权
限流
熔断
复用
16
缓存层重构:Redis Cluster
缓存穿透
击穿
雪崩
sync.Map
17
消息队列重构:Kafka/RabbitMQ
异步处理
事件驱动
channel
18
定时任务重构:Cron + 分布式锁
time.Ticker
幂等性
分布式锁
19
并发模型重构:errgroup / Context
sync.WaitGroup
优雅退出
Context
20
性能优化重构:pprof + 火焰图
内存泄漏
GC调优
pprof
21
安全加固重构:TLS · SQL注入防护
加密
敏感数据
明文传输
22
监控告警重构:Prometheus+Grafana
自定义Metrics
日志捞取
23
CI/CD重构:GitHub Actions
Docker多阶段构建
自动部署
24
微服务拆分:单体→微服务
gRPC
API Gateway
服务通信
25
服务发现与负载均衡
Consul
Nacos
客户端均衡
26
分布式事务:Saga / TCC
最终一致性
本地事务
Saga
27
配置中心与密钥管理:Vault
动态配置
密钥轮换
环境变量
28
链路追踪:OpenTelemetry
Jaeger
Zipkin
打日志
29
优雅重启与热更新
signal.Notify
graceful shutdown
30
重构总结:度量与技术债管理
持续重构
团队推动
技术债