编辑推荐
详尽讲解Go语言的基本语法和核心概念。
内容简介
本书首先介绍Go语言的基本概念,并通过“hello world”程序引导读者熟悉Go的工具链。接下来逐步深入,介绍面向包的设计、测试框架、错误与异常处理等内容。第8章开始探讨指针和内存逃逸分析,这对于理解Go语言的内存模型至关重要。随后的章节涉及数据结构、面向对象和接口编程等核心知识。
从第15章开始,重点转向并发编程,从基本的并发模式到复杂的并发原理,再到内存管理和垃圾回收等高级主题。最后几章关注实际开发中的问题,如使用标准库和第三方库、性能问题分析与追踪,以及重构“hello world”示例代码。
作者简介
作者阮正平,高级工程师,拥有十多年软件开发设计经验。擅长Golang、Docker、Kubernetes、数据库等技术,主要研究方向为云原生、数据库、区块链。目前任某公司架构师,负责公司的Serverless PaaS平台设计和开发,助力企业从传统应用迁移至云原生应用。
章节目录
版权信息
内容提要
前言
资源与支持
第1章 Go语言初探
1.1 Go语言的发展里程碑
1.2 云时代Go语言的发展趋势
1.3 Go语言优秀的语言特性
1.4 强大的生态圈和成功案例
1.5 Go程序是如何运行的
1.6 plan9与Go语言
第2章 “hello world”与工具链
2.1 Go语言的安装和配置
2.2 第一个程序“hello world”
2.3 Go语言的工具链命令
第3章 Go语言的基础知识
3.1 Go语言的常用规范
3.2 数据类型
3.3 变量的本质
3.4 常量
3.5 运算符
3.6 结构化语法
3.7 类型转换
3.8 Go语言的语法糖
第4章 面向包的设计与依赖管理
4.1 包的使用
4.2 面向包的设计
4.3 包管理工具Go Module
第5章 测试框架
5.1 Go语言中的测试框架
5.2 单元测试
5.3 测试代码的覆盖率
5.4 断言
5.5 基准测试
5.6 与网络有关的模拟测试
5.7 与测试有关的第三方工具
第6章 错误与异常处理
6.1 error的引入
6.2 异常处理
6.3 面向错误和恢复的设计
6.4 带堆栈信息的error
6.5 标准库errors的改进
6.6 errGroup对象
6.7 日志系统的引入
第7章 编码与字符串
7.1 字符编码
7.2 字符串
7.3 字符串与基本类型互转
第8章 指针与内存逃逸分析
8.1 活动帧的作用
8.2 值语义的本质
8.3 指针
8.4 内存逃逸分析
8.5 引用类型与深、浅拷贝
第9章 数据结构
9.1 面向数据的设计
9.2 数组
9.3 切片
9.4 映射
9.5 数据结构中的常见问题
第10章 结构体与内存对齐
10.1 结构体
10.2 序列化与反序列化
10.3 unsafe包
10.4 内存对齐
第11章 函数
11.1 认识函数
11.2 defer函数
11.3 作为数据类型的函数
11.4 函数类型的使用场景
11.5 函数的别名
第12章 面向“对象”编程
12.1 封装
12.2 继承
12.3 多态
第13章 面向接口编程
13.1 接口编程哲学
13.2 接口与组合
13.3 接口的剖析
13.4 接口的设计原则
13.5 检查接口的实现
13.6 空接口与类型断言
13.7 接口值的比较
13.8 检查运行阶段的接口类型
第14章 反射
14.1 反射的概念
14.2 接口与反射
14.3 反射包介绍
14.4 反射包的使用示例
14.5 反射的三个定律
14.6 反射的应用场景
14.7 反射的性能
第15章 并发编程
15.1 感受并发的魅力
15.2 sync.WaitGroup
15.3 数据竞争问题
15.4 传统的锁
15.5 原子操作介绍
第16章 并发与通道
16.1 通道的行为
16.2 创建通道
16.3 通道的特性
16.4 通道的其他特性
16.5 通道的使用建议
16.6 select机制
16.7 通道的模式
第17章 其他并发技术
17.1 context包
17.2 sync.Cond
17.3 sync.Once
17.4 sync.Map
17.5 sync.Pool
17.6 实现对象池
17.7 常用连接池
17.8 并发技术选型
第18章 并发原理
18.1 怎样让程序跑得更快
18.2 Go语言中的协程
18.3 GPM调度流程
18.4 监控线程sysmon
18.5 main函数与协程的执行顺序
18.6 可视化分析GPM调度
18.7 深入探索通道
第19章 内存管理
19.1 runtime
19.2 内存分配模型
19.3 内存管理单元
19.4 对象分类及分配策略
19.5 堆内存分配总结
第20章 垃圾回收
20.1 垃圾回收算法
20.2 Go语言的垃圾回收算法
20.3 触发垃圾回收的时机
20.4 查看运行时的垃圾回收信息
20.5 垃圾回收优化示例
第21章 使用标准库和第三方库
21.1 I/O操作
21.2 网络操作
21.3 与时间有关的标准库
21.4 随机数
21.5 正则表达式
21.6 flag包的使用
21.7 os包的使用
21.8 crypto包
21.9 base64编码
21.10 fmt包
21.11 使用第三方库
第22章 性能问题分析与追踪
22.1 性能优化概述
22.2 性能优化的步骤
22.3 硬件与软件的性能指标
22.4 优化工具概述
22.5 性能优化总结
22.6 使用go tool pprof工具进行性能分析的示例
22.7 pprof包结合HTTP服务使用的示例
22.8 pprof包和fgprof包的使用对比
22.9 go tool trace工具的使用示例
22.10 持续性能分析
22.11 性能问题的定位及处理建议
第23章 重构“hello world”
23.1 搭建业务处理框架
23.2 设计解耦的读写接口
23.3 业务实现
23.4 构建HTTP服务发布数据
23.5 整合Prometheus发布数据
23.6 代码细节的提升
23.7 总结
深入浅出Go语言编程:从原理解析到实战进阶是2024年由人民邮电出版社出版,作者杜军。
得书感谢您对《深入浅出Go语言编程:从原理解析到实战进阶》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。