商品簡介
作者簡介
名人/編輯推薦
目次
商品簡介
本書基於Go語言源碼提煉出Go特性的實現原理,並配以大量圖表和實例以通俗易懂的語言描述出來,包括常見數據結構實現原理(包括chan、slice、map、struct等),常見控制結構實現原理(包括defer、select、range、mutex等),Go協程、內存管理、反射等機制,Go 工具鏈指導及原理(包括單元測試、性能測試、依賴管理等)。另外,本書還包括由實際項目Bug複盤而來的案例分享,包括定時器資源洩露、語法糖陷阱等。本書還包含大量練習題目,甚至可以作為面試題目來源。
作者簡介
任洪彩,華為雲原生團隊核心成員,開源愛好者,深度參與CNCF(雲原生計算基金會)旗下Kubernetes、Prometheus等項目貢獻,Kubernetes資深成員,擔任Kubernetes SIG-Instrumentation Approver,敏捷軟件思想深度實踐者,在Nokia、華為等公司參與過多個大型項目的研發與重構,對Go、C/C++、Python、Swift等語言均有深入的研究與實踐。
名人/編輯推薦
華為資深工程師力作精選實戰題目+答案解析助力面試通關
基於Go語言源碼提煉Go特性的實現原理,配以大量圖表和實例。
詳解常見數據結構實現原理,常見控制結構實現原理,Go協程、內存管理、反射等機制,Go 工具鏈指導及原理。
分享由實際項目Bug複盤而來的案例,包括定時器資源洩露、語法糖陷阱等。
包含大量練習題目,可以作為面試題目來源。
基於Go語言源碼提煉Go特性的實現原理,配以大量圖表和實例。
詳解常見數據結構實現原理,常見控制結構實現原理,Go協程、內存管理、反射等機制,Go 工具鏈指導及原理。
分享由實際項目Bug複盤而來的案例,包括定時器資源洩露、語法糖陷阱等。
包含大量練習題目,可以作為面試題目來源。
目次
目錄
第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失效
第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失效
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。







