Golang 速查表
作者:
catroll
日期:
2020-06-26
标签:
Golang
1. 环境配置与基础语法
- 目标:搭建开发环境,掌握基本语法和编程逻辑。
- 内容:
- 安装 Go 版本(推荐 Go 1.21+)及 IDE(如 VS Code + Go 插件、IntelliJ IDEA)。
- 变量与数据类型(整型、浮点型、布尔型、字符串、数组、切片、字典)。
- 运算符(算术、关系、逻辑、位运算)。
- 流程控制(
if-else
、for
、switch
、goto
)。
- 函数与方法(函数定义、参数传递、返回值、闭包)。
- 练习:
- 编写计算器、斐波那契数列生成器。
- 实现一个简易的 Todo List 管理工具。
2. 面向对象与结构体
- 目标:理解 Golang 的 OOP 模型。
- 内容:
- 结构体(
struct
)的定义与初始化。
- 方法(Method)的绑定(值接收者 vs 指针接收者)。
- 接口(
interface
)与类型断言。
- 组合(Composition)代替继承。
- 练习:
- 设计一个动物 kingdom,包含不同动物的行为(如
Dog
吠叫、Bird
飞翔)。
- 实现一个简单的电商商品库存管理系统。
3. 并发与 Goroutine
- 目标:掌握 Golang 的并发编程模型。
- 内容:
- Goroutine 的启动与停止(
go func()
)。
- Channel 的使用(阻塞、非阻塞、缓冲区)。
select
语句实现多路复用。
sync.Mutex
和 atomic
包(锁与原子操作)。
- 练习:
- 实现一个多线程的 Web 服务器,处理并发请求。
- 模拟生产者-消费者问题,使用 Channel 通信。
4. 标准库实战
- 目标:熟悉 Golang 核心库,快速开发实际应用。
- 内容:
- 网络编程:
net/http
(REST API)、net/url
(URL 解析)。
- 数据处理:
encoding/json
/xml
(序列化/反序列化)、sort
/math
(常用算法)。
- 文件 I/O:
os
/path/filepath
(文件操作)、io/ioutil
(批量读写)。
- 模板引擎:
html/template
(生成动态 HTML)。
- 项目:
- 构建一个 RESTful API(用户管理、文章发布)。
- 开发一个命令行工具(如文件压缩/解压、天气查询)。
5. 微服务与框架
- 目标:掌握企业级开发模式与流行框架。
- 内容:
- 微服务架构(服务拆分、API 网关、配置中心)。
- 使用框架:
Gin
(轻量级 HTTP 框架)、Echo
、Beego
。
- 分布式工具:
etcd
(键值存储)、Consul
(服务发现)。
- 容器化与 Docker(部署 Go 应用)。
- 项目:
- 设计一个电商系统,包含用户服务、订单服务、支付服务。
- 实现一个实时聊天室(WebSocket + Goroutine)。
6. 数据库与 ORM
- 目标:连接数据库并高效操作。
- 内容:
- SQL 数据库驱动(
database/sql
+ PostgreSQL/MySQL)。
- ORM 工具:
GORM
、sqlx
。
- NoSQL 支持(
MongoDB
+ mgo
包)。
- 项目:
- 开发一个博客系统(支持 MySQL 存储、标签分类)。
- 实现一个用户登录注册系统(JWT 认证 + Redis 会话)。
7. 工程化实践
8. 性能与调优
- 目标:提升代码性能与稳定性。
- 内容:
- 性能分析工具:
pprof
、trace
。
- 优化技巧:减少内存分配、利用缓存、并发优化。
- 错误处理与日志(
log
包、zap
日志库)。
- 实战:
- 分析高并发场景下的性能瓶颈(如百万级请求处理)。
- 重构代码,优化响应时间与资源占用。
如果你有魔法,你可以看到一个评论框~