Go專家編程

Go專家編程

《Go專家編程》是電子工業出版社於2020年7月出版的圖書,作者是任洪彩。

本書基於Go語言源碼提煉Go特性的實現原理,配以大量圖表和實例,包含大量練習題目,可以作為面試題目來源。

基本介紹

  • 中文名:Go專家編程
  • 作者:任洪彩
  • 出版時間:2020年7月
  • 出版社:電子工業出版社
  • 頁數:404 頁
  • ISBN:9787121365577
  • 定價:108 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

《Go專家編程》深入地講解了Go語言常見特性的內部機制和實現方式,大部分內容源自對Go語言源碼的分析,並從中提煉出實現原理。通過閱讀本書,讀者可以快速、輕鬆地了解Go語言的內部運作機制。
本書首先介紹Go語言常見的數據結構及控制結構的實現原理,包括管道、切片、Hash表、select和for-range等,這部分內容大都以幾個精心準備的測驗題目開頭,每個測驗題目均對應一個知識點,讀者可以藉此測驗自身對該知識點的掌握程度。接著介紹了Go語言最基礎的概念,包括協程的概念、協程調度模型、協程調度策略,以及記憶體分配和垃圾回收相關的內容。本書還介紹了一些標準庫、異常處理和依賴管理等非語法相關但非常重要的內容。最後結合作者的見聞,整理了一些發生在真實項目中的編程陷阱。

圖書目錄

第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 規則
第11章 版本管理
11.1 安裝Go
11.2 刪除Go
11.3 升級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失效

作者簡介

任洪彩,華為雲原生團隊核心成員,開源愛好者,深度參與CNCF(雲原生計算基金會)旗下Kubernetes、Prometheus等項目貢獻,Kubernetes資深成員,擔任Kubernetes SIG-Instrumentation Approver,敏捷軟體思想深度實踐者,在Nokia、華為等公司參與過多個大型項目的研發與重構,對Go、C/C++、Python、Swift等語言均有深入的研究與實踐。

相關詞條

熱門詞條

聯絡我們