### **4周核心学习计划**
**目标:掌握构建项目所需的20%核心语法,覆盖80%日常开发场景**
**Week 1 - 基础语法与环境搭建**
```
Day 1-2: 环境配置与基础语法
- 安装Go 1.21+、配置VS Code+Go插件
- 理解go.mod模块管理
- 掌握变量声明(var/const :=)、基础类型(int/string/bool)
- 编写第一个Hello World和测试程序
Day 3-4: 控制结构与函数
- 条件语句(if/switch)
- 循环(for/range)
- 函数定义(多返回值、命名返回值)
- 错误处理模式(error类型)
Day 5-6: 复合数据类型
- 数组 vs 切片(重点掌握切片操作)
- map的增删改查
- struct定义与嵌套
- JSON序列化/反序列化
Day 7: 综合练习
- 编写命令行计算器(支持加减乘除)
- 实现简易通讯录存储(结构体+切片)
```
**Week 2 - 函数进阶与面向对象**
```
Day 1-2: 函数高级特性
- 匿名函数与闭包
- defer机制与执行顺序
- 方法接收器(值/指针)
- 接口基础(隐式实现)
Day 3-4: 包与代码组织
- 创建自定义包
- 导入路径规范
- init函数执行顺序
- 文档注释(godoc)
Day 5-6: 并发基础
- goroutine启动与调度
- channel基础操作(无缓冲/有缓冲)
- sync.WaitGroup使用
- 竞态条件检测(-race)
Day 7: 综合练习
- 实现并发文件哈希计算器
- 构建简易聊天室(多客户端通信)
```
**Week 3 - 标准库与工程实践**
```
Day 1-2: 关键标准库
- os/文件操作
- net/http基础
- time处理与时区
- regexp正则表达式
Day 3-4: 测试与性能
- 单元测试(table-driven tests)
- 基准测试(Benchmark)
- pprof性能分析
- 内存逃逸分析
Day 5-6: 依赖管理
- go mod进阶用法
- 第三方库选择标准
- 使用gin/echo框架
- ORM基础(gorm/sqlx)
Day 7: 综合练习
- 开发天气查询CLI工具
- 实现JWT认证中间件
```
**Week 4 - 项目架构设计**
```
Day 1-2: 设计模式实践
- 工厂模式
- 单例模式(sync.Once)
- 中间件模式
- 依赖注入
Day 3-4: 项目规范
- 目录结构设计
- 配置管理(viper)
- 日志分级(zap/slog)
- 错误处理策略
Day 5-6: 微服务基础
- REST API设计
- gRPC原型定义
- 连接池管理
- 熔断机制(hystrix)
Day 7: 综合练习
- 设计电商系统核心模块
- 实现分布式ID生成器
```
-----
### **5个渐进式实战项目**
**1. 待办事项CLI工具(初级)**
- 描述:命令行任务管理器,支持增删改查和持久化存储
- 关键技术:
- 文件IO(JSON存储)
- cobra命令行库
- 结构体序列化
- 错误处理链
**2. API监控看板(初中级)**
- 描述:定时检测多个API端点可用性并生成报告
- 关键技术:
- 并发调度(cron库)
- HTTP客户端
- 数据可视化(termdash)
- 配置热加载
**3. 分布式爬虫(中级)**
- 描述:并发爬取网页数据并存储到数据库
- 关键技术:
- worker pool模式
- 连接池管理
- CSS选择器(goquery)
- 限速机制(rate.Limiter)
**4. 微服务网关(中高级)**
- 描述:实现反向代理、负载均衡和认证功能
- 关键技术:
- Gin框架中间件
- JWT验证
- 一致性哈希
- Prometheus监控
**5. 实时交易引擎(高级)**
- 描述:处理高频订单撮合与风控
- 关键技术:
- 无锁数据结构(atomic)
- 事件驱动架构
- Protobuf协议
- 分布式追踪(OpenTelemetry)
-----
### **学习建议**
1. 每个项目完成后进行`go vet`静态分析
2. 使用`-race`参数测试并发程序
3. 先尝试独立实现,遇到问题再参考解决方案
4. 定期用`pprof`分析热点代码
5. 在GitHub建立学习日志仓库,记录成长路径
这个计划聚焦Go语言最关键的并发模型、接口系统、错误处理等核心概念,通过项目驱动帮助您在实践中形成肌肉记忆。当您完成第五个项目时,将具备独立开发生产级应用的能力。