好书推荐 好书速递 排行榜 读书文摘

Go专家编程

Go专家编程
作者:任洪彩
出版社:电子工业出版社
出版年:2020-07
ISBN:9787121365577
行业:计算机
浏览数:47

内容简介

《Go专家编程》深入地讲解了Go语言常见特性的内部机制和实现方式,大部分内容源自对Go语言源码的分析,并从中提炼出实现原理。通过阅读本书,读者可以快速、轻松地了解Go语言的内部运作机制。

本书首先介绍Go语言常见的数据结构及控制结构的实现原理,包括管道、切片、Hash表、select和for-range等,这部分内容大都以几个精心准备的测验题目开头,每个测验题目均对应一个知识点,读者可以借此测验自身对该知识点的掌握程度。接着介绍了Go语言最基础的概念,包括协程的概念、协程调度模型、协程调度策略,以及内存分配和垃圾回收相关的内容。本书还介绍了一些标准库、异常处理和依赖管理等非语法相关但非常重要的内容。最后结合作者的见闻,整理了一些发生在真实项目中的编程陷阱。

......(更多)

作者简介

任洪彩,华为云原生团队核心成员,开源爱好者,深度参与CNCF(云原生计算基金会)旗下Kubernetes、Prometheus等项目贡献,Kubernetes资深成员,担任Kubernetes SIG-Instrumentation Approver,敏捷软件思想深度实践者,在Nokia、华为等公司参与过多个大型项目的研发与重构,对Go、C/C++、Python、Swift等语言均有深入的研究与实践。

......(更多)

目录

第1章 常见数据结构的实现原理

1.1 管道

1.1.1 热身测验

1.1.2 特性速览

1.1.3 实现原理

1.2 slice

1.2.1 热身测验

1.2.2 特性速览

1.2.3 实现原理

1.2.4 切片表达式

1.3 map

1.3.1 热身测验

1.3.2 特性速览

1.3.3 实现原理

1.4 struct

1.4.1 热身测验

1.4.2 内嵌字段

1.4.3 方法受体

1.4.4 字段标签

1.5 iota

1.5.1 热身测验

1.5.2 特性速览

1.5.3 实现原理

1.6 string

1.6.1 热身测验

1.6.2 特性速览

1.6.3 实现原理

第2章 控制结构

2.1 select

2.1.1 热身测验

2.1.2 特性速览

2.1.3 实现原理

2.2 for-range

2.2.1 热身测验

2.2.2 特性速览

2.2.3 实现原理

第3章 协程

3.1 协程的概念

3.2 调度模型

3.3 调度策略

第4章 内存管理

4.1 内存分配

4.2 垃圾回收

4.3 逃逸分析

第5章 并发控制

5.1 channel

5.2 WaitGroup

5.3 context

5.4 Mutex

5.5 RWMutex

5.5.1 读写锁的数据结构

5.5.2 场景分析

第6章 反射

6.1 热身测验

6.2 接口

6.3 反射定律

第7章 测试

7.1 快速开始

7.1.1 单元测试

7.1.2 基准测试

7.1.3 示例测试

7.2 进阶测试

7.2.1 子测试

7.2.2 Main测试

7.3 实现原理

7.3.1 testing.common

7.3.2 testing.TB接口

7.3.3 单元测试的实现原理

7.3.4 性能测试的实现原理

7.3.5 示例测试的实现原理

7.3.6 Main测试的实现原理

7.3.7 go test的工作机制

7.4 扩展阅读

7.4.1 测试参数

7.4.2 benchstat

第8章 异常处理

8.1 error

8.1.1 热身测验

8.1.2 基础error

8.1.3 链式error

8.1.4 工程迁移

8.2 defer

8.2.1 热身测验

8.2.2 约法三章

8.2.3 实现原理

8.2.4 性能优化

8.3 panic

8.3.1 热身测验

8.3.2 工作机制

8.3.3 源码剖析

8.4 recover

8.4.1 热身测验

8.4.2 工作机制

8.4.3 源码剖析

第9章 定时器

9.1 一次性定时器(Timer)

9.1.1 快速开始

9.1.2 实现原理

9.2 周期性定时器(Ticker)

9.2.1 快速开始

9.2.2 实现原理

9.3 runtimeTimer

9.3.1 实现原理

9.3.2 性能优化

9.4 案例分享

第10章 语法糖

10.1 简短变量声明符

10.1.1 热身测验

10.1.2 规则

10.2 可变参函数

第11章 版本管理

11.1 安装Go

11.2 删除Go

11.3 升级Go

11.4 Go版本管理器

11.4.1 快速开始

11.4.2 工作机制

11.4.3 小结

11.5 源码编译

11.5.1 源码下载

11.5.2 源码编译过程

第12章 Go语言依赖管理

12.1 GOPATH

12.1.1 GOROOT是什么

12.1.2 GOPATH是什么

12.1.3 依赖查找

12.1.4 GOPATH的缺点

12.2 vendor

12.2.1 vendor目录位置

12.2.2 搜索顺序

12.2.3 vendor的不足

12.3 Go Module

12.3.1 Go Module基础

12.3.2 快速实践

12.3.3 replace指令

12.3.4 exclude指令

12.3.5 indirect指令

12.3.6 版本选择机制

12.3.7 incompatible

12.3.8 伪版本

12.3.9 依赖包存储

12.3.10 go.sum

12.3.11 模块代理

12.3.12 GOSUMDB的工作机制

12.3.13 GOSUMDB的实现原理

12.3.14 第三方代理

12.3.15 私有模块

12.3.16 Go Module的演进

第13章 编程陷阱

13.1 切片扩容

13.2 空切片

13.3 append的本质

13.4 循环变量引用

13.5 协程引用循环变量

13.6 recover失效

......(更多)

读书文摘

......(更多)

猜你喜欢

点击查看