Golang个人知识库
目录
Golang标准文档
Golang基础
Go 适合什么
Go 是一门强调简单、并发和工程效率的语言,常用于后端服务、云原生组件、命令行工具、网关、DevOps 工具和高并发网络服务。
学习路线
mermaid
flowchart TD
A[环境安装和 go 命令] --> B[基础语法]
B --> C[函数、结构体、接口]
C --> D[集合和错误处理]
D --> E[goroutine 和 channel]
E --> F[context 和并发控制]
F --> G[Web API 和数据库]
G --> H[测试、模块和项目实践]重点目录
| 目录 | 学习重点 |
|---|---|
| 从零到生产级掌握 | 建立 Go 语法、底层原理、并发、Web、测试和生产排查主线 |
| 从零到精通验收清单 | 按“是什么、为什么、原理、错误后果、商业场景、排查、面试”检查是否真正学懂 Go |
| 商业场景训练营 | 用资产查询服务、slice、map、goroutine、context 和测试串起生产落地 |
| 环境搭建 | Go 安装、模块、常用命令 |
| 基础语法 | 变量、常量、条件、循环 |
| 函数 | 多返回值、闭包、defer |
| 结构体和接口 | 组合、方法、接口设计 |
| 并发 | goroutine、channel、锁、WaitGroup |
| context | 超时、取消、请求链路传值 |
| 测试 | 单元测试、表格驱动测试、基准测试 |
| Web API | 路由、中间件、参数校验、响应封装 |
| 面试题 | 标准回答、追问点和原理跳转 |
Go 工程实践建议
- 错误要显式处理,不要忽略返回值。
- 包名短小清晰,不要用
utils承载所有东西。 - 并发要有退出机制,避免 goroutine 泄漏。
- 对外接口保持小而稳定,内部实现可以逐步调整。
- 使用
go test、go fmt、go vet保持代码质量。
和 Java 的思维差异
| 方面 | Java | Go |
|---|---|---|
| 面向对象 | 类和继承体系 | 结构体、方法、接口组合 |
| 异常处理 | try/catch | 返回 error |
| 并发 | 线程池、锁、Future | goroutine、channel、context |
| 依赖管理 | Maven/Gradle | Go Modules |
| 格式化 | 团队约定较多 | gofmt 统一格式 |
