Go 專家編程

任洪彩

買這商品的人也買了...

商品描述

本書基於Go語言源碼提煉出Go特性的實現原理,並配以大量圖表和實例以通俗易懂的語言描述出來,包括常見數據結構實現原理(包括chan、slice、map、struct等),常見控制結構實現原理(包括defer、select、range、mutex等),Go協程、內存管理、反射等機制,Go 工具鏈指導及原理(包括單元測試、性能測試、依賴管理等)。另外,本書還包括由實際項目Bug復盤而來的案例分享,包括定時器資源泄露、語法糖陷阱等。本書還包含大量練習題目,甚至可以作為面試題目來源。

目錄大綱

第一章常見數據結構的實現原理

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規則

第11章版本管理

11.1安裝
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第三方代理

第13章編程陷阱

13.1切片擴容
13.2空切片
13.3 append的本質
13.4循環變量引用
13.5協程引用循環變量
13.6 recover失效