第1章 语言基础
1.1 Go语言创世纪 1.2 Hello, World 的革命 1.3 数组、字符串和切片 1.4 函数、方法和接口 1.5 面向并发的内存模型 1.6 常见的并发模式 1.7 错误和异常 1.8 补充说明第2章 CGO编程
2.1 快速入门 2.2 CGO基础 2.3 类型转换 2.4 函数调用 2.5 内部机制 2.6 实战: 封装qsort 2.7 CGO内存模型 2.8 C++类包装 2.9 静态库和动态库 2.10 编译和链接参数 2.11 补充说明第3章 Go汇编语言
3.1 快速入门 3.2 计算机结构 3.3 常量和全局变量 3.4 函数 3.5 控制流 3.6 再论函数 3.7 汇编语言的威力 3.8 例子:Goroutine ID 3.9 Delve调试器 3.10 补充说明第4章 RPC Protobuf
4.1 RPC入门 4.2 Protobuf 4.3 玩转RPC 4.4 gRPC入门 4.5 gRPC进阶 4.6 gRPC和Protobuf扩展 4.7 pbgo: 基于Protobuf的框架 4.8 grpcurl工具 4.9 补充说明第5章 Go和Web
5.1 Web开发简介 5.2 请求路由 5.3 中间件 5.4 请求校验 5.5 和数据库打交道 5.6 服务流量限制 5.7 大型Web项目分层 5.8 接口和表驱动开发 5.9 灰度发布和A/B测试 5.10 补充说明第6章 分布式系统
6.1 分布式 id 生成器 6.2 分布式锁 6.3 延时任务系统 6.4 分布式搜索引擎 6.5 负载均衡 6.6 分布式配置管理 6.7 分布式爬虫 6.8 补充说明附录
附录A: Go语言常见坑 附录B: 有趣的代码片段第1章 语言基础
1.1 Go语言创世纪 1.2 Hello, World 的革命 1.3 数组、字符串和切片 1.4 函数、方法和接口 1.5 面向并发的内存模型 1.6 常见的并发模式 1.7 错误和异常 1.8 补充说明第2章 CGO编程
2.1 快速入门 2.2 CGO基础 2.3 类型转换 2.4 函数调用 2.5 内部机制 2.6 实战: 封装qsort 2.7 CGO内存模型 2.8 C++类包装 2.9 静态库和动态库 2.10 编译和链接参数 2.11 补充说明第3章 Go汇编语言
3.1 快速入门 3.2 计算机结构 3.3 常量和全局变量 3.4 函数 3.5 控制流 3.6 再论函数 3.7 汇编语言的威力 3.8 例子:Goroutine ID 3.9 Delve调试器 3.10 补充说明第4章 RPC Protobuf
4.1 RPC入门 4.2 Protobuf 4.3 玩转RPC 4.4 gRPC入门 4.5 gRPC进阶 4.6 gRPC和Protobuf扩展 4.7 pbgo: 基于Protobuf的框架 4.8 grpcurl工具 4.9 补充说明第5章 Go和Web
5.1 Web开发简介 5.2 请求路由 5.3 中间件 5.4 请求校验 5.5 和数据库打交道 5.6 服务流量限制 5.7 大型Web项目分层 5.8 接口和表驱动开发 5.9 灰度发布和A/B测试 5.10 补充说明第6章 分布式系统
6.1 分布式 id 生成器 6.2 分布式锁 6.3 延时任务系统 6.4 分布式搜索引擎 6.5 负载均衡 6.6 分布式配置管理 6.7 分布式爬虫 6.8 补充说明附录
附录A: Go语言常见坑 附录B: 有趣的代码片段Go语言高级编程
2009年11月,Google发布了Go语言,在世界范围内引发了轰动。2015年和2016年中国区的Go语言大会分别在上海和北京召开,来自Go语言团队的开发人员均作了相关的报告。纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。
中国的Go语言社区是全球最大的Go语言社区,我们不仅仅从一开始就始终紧跟着Go语言的发展脚步,同时也为Go语言的发展作出了自己的巨大贡献。来自中国深圳的韦光京(vcc.163@gmail.com)在2010年前后,关于MinGW的工作奠定了Go语言对Windows平台的支持,同时也奠定了CGO对Windows平台的支持。同样来自中国的Minux(minux.ma@gmail.com)则作为Go语言核心团队的成员,他参与了大量的Go语言核心设计和开发评审工作。同时还有大量的国内Go语言爱好者积极参与了BUG的汇报和修复等工作(作者也是其中之一)。
截至2018年,中国出版的Go语言相关教程有近15本之多,内容主要涵盖Go语言基础编程、Web编程、并发编程和内部源码剖析等诸多领域。但作为Go语言的资深用户,作者关注的Go语言话题远远不止这些内容。其中CGO特性实现了Go语言对C语言和C++语言的支持,使得Go语言可以无缝继承C/C++世界数十年来积累的巨大软件资产。Go汇编语言更是提供了直接访问底层机器指令的方法,让我们可以无限压榨程序中热点代码的性能。目前国内互联网公司的新兴项目已经在逐渐向Go语言生态转移,大型分布式系统的开发实战经验也是大家关心的。这些高阶或前沿特性都是作者和本书所关注的话题。
本书针对有一定Go语言经验,想深入了解Go语言各种高级用法的开发人员。对于Go语言新手,在阅读本书前建议先熟读D&K的《The Go Programming Language》。最后,希望这本书能够帮助大家更深入地了解Go语言。
下一章:1.1 Go语言创世纪
Go语言最初由Google公司的Robert Griesemer、Ken Thompson和Rob Pike三个大牛于2007年开始设计发明,设计新语言的最初的洪荒之力来自于对超级复杂的C++11特性的吹捧报告的鄙视 ...
AI 中文社