買這商品的人也買了...
-
$680$537 -
$500$395 -
$680$530 -
$352Go程序員 面試演算法寶典
-
$534$507 -
$653Harbor 權威指南:容器鏡像、Helm Chart 等雲原生製品的管理與實踐
-
$880$695 -
$469Go 語言極簡一本通:零基礎入門到項目實戰
-
$653Go Web 編程實戰派 — 從入門到精通
-
$980$774 -
$880$748 -
$580$458 -
$420$357 -
$607Go 語言高級開發與實戰
-
$407Go 語言定製指南
-
$734掌握分佈式跟蹤:微服務和復雜系統性能分析
-
$594$564 -
$510深度探索 Go語言 — 對象模型與 runtime 的原理、特性及應用
-
$880$695 -
$500Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用
-
$505AIDevOps:智能微服務開發、運維原理與實踐
-
$658企業級 Go 項目開發實戰
-
$607使用 GitOps 實現 Kubernetes 的持續部署:模式、流程及工具
-
$654$621 -
$880$748
相關主題
商品描述
本書深入地講解了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 實現原理
1.7 sync.Map
1.7.1 熱身測驗
1.7.2 特性速覽
1.7.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.1.4 模糊測試
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 模糊測試的實現原理
7.3.7 Main測試的實現原理
7.3.8 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 快速開始
11.2 泛型總覽
11.3 類型約束
11.4 泛型舉例
11.4.1 泛型示例:MapKeys
11.4.2 泛型應用舉例:Set
11.4.3 泛型應用舉例:Sort
11.5 泛型小結
第12章 依賴管理
12.1 GOPATH
12.2 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失效