作者介绍
你会学到什么?
- 熟悉网络库的相关知识,了解网络库的一般设计,分辨网络库的不同特点以及性能优化
- 了解 RPC 框架高扩展性的设计思路与实践,优雅支持更多横向能力
- 了解 GORM 的设计与实现原理,以及如何扩展及更好的服务业务
- 了解高性能 JSON 库 Sonic 概念、特性、类型以及其实现原理与 RCU 同步机制在编译缓存中的应用
小册介绍
随着互联网的快速发展,几乎所有公司都盛行“小步快跑,快速试错”的开发模式,这要求研发同学能更加快速高效地完成开发任务。因此,一个优秀的组件必不可少,它相当于一个模板代码库
,包含了很多基础性的功能和约定俗成的操作规范。有了它,我们只需要专心实现所需要的业务逻辑就可以,极大地提高了开发效率。
但是,在业务中真正应用各种组件的时候,我们经常遇到各种问题,比如说:
- 业务经常需要我们设计高性能网络库,提高组件的扩展性,不知道怎么操作
- 遇到一些组件的序列化性能差,却不知道该怎么优化
- 想要设计出适合自己业务的组件,不知道怎么入手
- ……
基于此,掘金携手4位字节跳动研发工程师,把 4 个已开源且成熟的组件设计与实现整合成可复制、可借鉴的内容,帮助大家快速掌握组件设计的要点与精髓
。具体来说,小册主要分为四个模块。
- 模块一:Netpoll 网络库设计与实现。 重点讲解 Netpoll 网络库的详细设计与性能优化思路,帮助大家熟悉网路库相关知识,分辨网络库的不同特点,掌握其正确使用方式。学习完本节能根据业务特点,选择最适合的网路库和能够自行设计网路库。
- 模块二:Go 微服务框架 Kitex 扩展性设计和实践。 以案例的形式分析框架演进的痛点及对 Kitex 的改造,包括 Kitex 扩展性的设计、实践与思考,从而优雅支持更多横向能力。
- 模块三:GORM 的设计与实现。 重点讲解 GORM 的设计实现与其思路,帮助大家更好地了解 GORM 的概念和工作原理,能够在做封装实现的时候给大家一定的启发。
- 模块四:高性能 JSON – Sonic JSON 库的使用、设计与实现。 通过讲解 Sonic 库的特性、JSON 的数据结构、基本类型和数据类型,帮助大家重点掌握 Sonic JIT 的实现原理与 RCU 同步机制在编译缓存中的应用。
适宜人群
- 具备 Go 语言开发经验;
- 拥有 RPC 开发或者网络编程经验;
- 使用过 ORM 或者数据库;
- 有一定的背景知识(如汇编语言、x86_64 指令集等内容);
- 对 JSON 有一定的了解。