这门课解决什么问题
Go 语言从 1.18 版本引入泛型后,社区里大量基础库和业务代码都在重构。很多在用旧版本写业务的后端开发者,面对新版本往往只停留在“能看懂语法”,真要动手把项目里重复的 CRUD 和数据结构改造为泛型版本,就会卡在类型约束、接口设计和第三方库兼容上。这门课针对的就是这个断层:它不带你从零学语法,而是直接拿泛型改造真实场景,比如用泛型重写类似 Java 的 ArrayList、在 JSON 反序列化时消除重复样板代码、以及把 Gorm 调用封装为泛型版本。核心场景是后端日常最频繁的数据库操作和实体处理,解决的是“升级了 Go 版本却还在写老一套重复代码”的问题。
适合什么基础,建议先看哪几块
资料明确说不适合新手,这点要听。你需要已经能用 Go 独立写完接口、跑通过 Web 服务、知道 struct 和 interface 怎么配合,最好碰过 Gorm 或同类 ORM。完全没写过 Go 的人直接看泛型封装会懵。如果你符合基础门槛,建议先把泛型快速上手那一章看完,重点看泛型加简单工厂模式创建实体的进阶版,以及 JSON 反序列化那讲,这两块最能体现泛型消除样板代码的价值。看完基础封装后,直接进 Gorm 泛型封装部分,从基本代码结构到列表获取封装连着看,这部分代码量不大但思路密集,是整个资料里最值得反复琢磨的地方。
学完能独立做什么,资料怎么配合练习
学完后你应该能独立做两件事:一是给自己项目里的数据访问层写一套泛型封装,让不同实体的增删改查不再各抄一遍;二是在处理 JSON 和自定义集合时,用泛型替代手写的类型断言和重复函数。练习时建议不要只看视频,准备一个能跑的 Go 1.18 以上环境,跟着把 ArrayList 改造和 Gorm 封装手敲一遍。先不看讲解自己写一版,卡住了再对照资料里的写法,这样能暴露你对类型约束理解的盲区。Gorm 封装部分建议拿自己项目里真实表结构做测试,别只用课程示例数据,真实字段类型和空值处理往往才是封装时最容易出 bug 的地方。
golang新版本不断在发布。我们快速开个补丁课。本课程不适合新手,包含泛型下的代码封装和升级。 永远不会完结
课程目录
* 第一章:泛型快速上手 cplist.push('第一章:泛型快速上手');/
* 第1讲:开张课、安装go1.18、快速使用泛型
* 第2讲:泛型 定义实体类
* 第3讲:泛型+简单工厂模式创建实体(1):初级版
* 第4讲:泛型 +简单工厂模式创建实体(2):进阶版
* 第5讲:实例:JSON反序列化时使用泛型简化代码
* 第6讲:快速用Go泛型改造一个模拟Java的ArrayList
* 第二章:泛型下进行Gorm调用混合封装 cplist.push('第二章:泛型下进行Gorm调用混合封装');/
* 第7讲:Gorm泛型封装(1):基本代码结构、数据狗
* 第8讲:Gorm泛型封装(2): 参数获取设计
* 第9讲:Gorm泛型封装(3): 列表获取封装
* 第10讲:Gorm泛型封装:新增数据、支持dryrun
* 第11讲:Gorm泛型封装:事务 封装(粗暴版)
* 第12讲:Gorm泛型封装:事务 封装(模拟钩子)
* 第13讲:gin泛型封装(1):通用绑定(JSON)
* 第14讲:gin泛型封装(2):通用绑定(try catch模式)
* 第15讲:使用泛型编写RUST风格的Error处理
* 第16讲:泛型构建简易FIFO队列(1) 最基本的代码(add和list)
* 第17讲:泛型构建简易FIFO队列(2) 最基本的代码(pop和get)
* 第18讲:泛型构建简易FIFO队列(3) 关于探测竞争测试( go race)
* 第三章:泛型封装Etcd操作库 cplist.push('第三章:泛型封装Etcd操作库');/
* 第19讲:开张篇、直接就是干、逼格初始化代码
* 第20讲:获取kv值的封装:value模式、if/then写法
* 第21讲:插入kv值的封装:无脑插入
* 第22讲:插入kv值的封装:事务插入、不存在则插入
* 第23讲:插入kv值的封装:多值批量事务插入
* 第24讲:根据key取列表:根据范围取值






