Go mod 好菜系列 - 0x00 先开个菜单
新系列开篇,先聊为什么常见 Go 模块值得单独学,以及 gin、gorm、go-redis、zap、viper、cobra 各自负责什么。
前面那套 Golang 从入门到放弃,更像是把语言和服务开发的主线先走一遍。走到这个阶段以后,真正写项目时你会越来越频繁地碰到另外一个问题:标准库会了,但团队实际常用的那些第三方模块,到底怎么选、怎么用、适合干啥?
所以这次我准备单开一个新系列,就叫 Go mod 好菜系列。意思很直白,不是讲所有库,而是挑那些在 Go 项目里经常上桌、而且确实值得学会的“常用菜”。
为什么要单独讲这些 mod
因为很多人学 Go 的过程是这样的:
- 语法学了
- HTTP 服务会写了
- 数据库连接也会了
- 然后一进真实项目,看到满屏 gin、gorm、zap、viper、cobra,突然又有点不会了
这不是你笨,而是从“会语言”到“会项目”本来就隔着一层生态。标准库更多是在打基础,常用模块才更接近日常工程开发的地面。
这一套准备讲哪些
我先定六个最常见也最实用的:
- gin:Web 框架,写接口很高频
- gorm:ORM,数据库 CRUD、模型关系、迁移这些都常碰
- go-redis:缓存与 Redis 操作
- zap:结构化日志
- viper:配置管理
- cobra:命令行工具和 CLI 结构
这几个放在一起,已经足够支撑很多中小型 Go 服务的基础骨架了。
为什么先讲这些,而不是别的
当然,Go 生态里还有很多常用的库,比如:
- validator
- jwt
- sqlx
- ent
- wire
- fx
但如果一开始就把菜谱摊太满,读者很容易又进入另一种“什么都看了,但没一样真正敢用”的状态。所以这套先聚焦在最常见、最容易直接落进项目里的部分。
怎么读这套系列更划算
我建议你别把这些文章当文档抄。更好的读法是:
- 先知道这个模块解决什么问题
- 再看它最常见的使用方式
- 最后记住几个最容易踩的坑
很多模块真正难的不是 API 数量,而是你不知道它在工程里应该摆在哪个位置。
这一套会和前一套有什么不同
这次每篇会写得比前面的入门章节更展开一些,不再只是“先有个印象”,而是尽量贴近你在项目里第一次用它时最需要知道的那一层东西:
- 它是干嘛的
- 为什么会有人用它
- 最常见的写法是什么
- 常见误区是什么
- 适合放在项目的哪一层
小结
这一章主要是把菜单先摆出来。接下来我们就从 gin 开始,先看它为什么能在 Go Web 里常年霸榜,然后再看它到底帮你省了哪些事,又带来了哪些新的约定。