这门课解决什么工作场景

很多写 Go 的朋友,日常用 Gin、GORM 或者 RPC 框架很顺,但一旦遇到高并发场景下的性能瓶颈,或者业务需要深度定制中间件时,就会卡壳。这门课不教你写基础的 CRUD,而是直接拆解字节跳动内部在用的几款核心基础组件。它的价值在于把“黑盒”变成“白盒”:当你面对网络库调度、零拷贝缓冲区、微服务扩展点、ORM 映射原理或 JSON 序列化优化时,能清楚知道底层是怎么运转的,从而在自己的业务里做对决策。

适合什么基础与资料怎么看

这不适合刚学会语法的初学者。你需要至少有一两后端项目经验,熟悉接口、并发原语,并且遇到过“压测上不去”或者“框架不够用”的痛点。建议先从 Netpoll 网络库的调度优化和 Nocopy LinkBuffer 设计看起,这两块对理解高并发网络模型最直接;接着看 Kitex 的可扩展性设计与实践,学习怎么在不改源码的情况下做定制;最后再啃 GORM 和 Sonic 的实现细节。看资料时不要只听讲解,一定要把对应组件的源码拉下来对照着看,重点理解它为什么这么设计,而不是怎么用。

学完能独立做什么

学完之后,你不只是会用这几个库,而是具备了剖析和改造基础组件的能力。具体来说,你能独立排查网络层的性能损耗,能基于 Kitex 的扩展机制写出自定义的中间件或治理策略,也能在面对海量数据读写时,清楚 GORM 或 Sonic 在底层做了哪些优化。更重要的是,这套拆解组件的思路可以迁移到其他技术栈上。配合资料包里的代码片段,建议你针对每一个组件,自己搭一个极简的压测环境,复现课里的优化过程,这样才算真正把经验内化成自己的工程能力。


4 位字节跳动研发工程师,带你深入剖析字节基础组件的设计、实现及性能优化

课程目录

*   开篇词 | 厚积薄发,积累 Go 组件设计经验

*   网络库基础知识

*   Netpoll 网络库的详细设计

*   网络库性能优化- poller 调度优化

*   网络库性能优化- Nocopy LinkBuffer 设计优化

*   Go 微服务框架演进的痛点

*   Kitex 可扩展性设计

*   Kitex 扩展实践介绍

*   GORM 诞生的背景与工作原理

*   GORM 的设计与实现

*   推荐配置与企业级封装与扩展应用

*   Sonic JSON 与 JSON 的基本知识

*   Sonic 使用介绍与最佳实践

*   Sonic 的设计与实现

*   高性能 JSON 的未来规划与展望