Go語言設(shè)計(jì)與實(shí)現(xiàn)
定 價(jià):139.8 元
- 作者:左書祺(@Draven)
- 出版時(shí)間:2021/11/1
- ISBN:9787115576613
- 出 版 社:人民郵電出版社
- 中圖法分類:TP312
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書基于在讀者之間廣為傳閱的同名開源電子書《Go語言設(shè)計(jì)與實(shí)現(xiàn)》,是難得一見的Go語言進(jìn)階圖書。
書中結(jié)合近200幅生動(dòng)的全彩圖片,配上詳盡的文字剖析與精選源代碼段,為讀者奉上了異彩紛呈、系統(tǒng)完善的Go語言解讀。本書內(nèi)容分為9章:調(diào)試源代碼、編譯原理、數(shù)據(jù)結(jié)構(gòu)、語言特性、常用關(guān)鍵字、并發(fā)編程、內(nèi)存管理、元編程和標(biāo)準(zhǔn)庫,幾乎涵蓋了Go語言從編譯到運(yùn)行的方方面面。書中的代碼片段基于Go 1.15。通過閱讀本書,讀者不僅能夠深入理解Go語言的實(shí)現(xiàn)細(xì)節(jié),而且可以深刻認(rèn)識(shí)設(shè)計(jì)背后的原理,同時(shí)提升閱讀源代碼的技能。
1.新穎的學(xué)習(xí)方式,近200幅精美全彩技術(shù)配圖,600多段精選源代碼段,精煉的文字剖析,帶你以不同的方式讀懂Go源碼,掌握Go底層原理
2.強(qiáng)大的讀者口碑,本書基于“面向信仰編程”博客作者@Draven的開源電子書《Go語言設(shè)計(jì)與實(shí)現(xiàn)》,有30萬讀者追更,全網(wǎng)閱讀量100萬+
3.難能可貴的閱讀體驗(yàn),全彩印刷、精美排版、封面選用特種紙、內(nèi)文采用80g膠版紙
4.專業(yè)人士推薦,謝孟軍、毛劍、萬俊峰Kevin、張磊、無聞等業(yè)內(nèi)人士力薦,大量讀者熱薦
左書祺(@Draven)
Kubernetes貢獻(xiàn)者、前調(diào)度器項(xiàng)目組成員、云計(jì)算和資源調(diào)度架構(gòu)師!懊嫦蛐叛鼍幊獭辈┛妥髡,開源電子書《Go語言設(shè)計(jì)與實(shí)現(xiàn)》作者,“真沒什么邏輯”主理人。長期維護(hù)開源項(xiàng)目。
《Go語言設(shè)計(jì)與實(shí)現(xiàn)》有30多萬讀者追更,全網(wǎng)閱讀量已經(jīng)超過100萬。
前言 iii
第 1章 調(diào)試源代碼 1
1.1 Go語言源代碼 1
1.2 編譯源代碼 2
1.3 中間代碼 3
1.4 小結(jié) 4
第 2章 編譯原理 5
2.1 編譯過程 5
2.1.1 預(yù)備知識(shí) 5
2.1.2 編譯四階段 7
2.1.3 編譯器入口 10
2.1.4 小結(jié) 11
2.1.5 延伸閱讀 12
2.2 詞法分析和語法分析 12
2.2.1 詞法分析 12
2.2.2 語法分析 17
2.2.3 小結(jié) 26
2.2.4 延伸閱讀 26
2.3 類型檢查 26
2.3.1 強(qiáng)弱類型 26
2.3.2 靜態(tài)類型與動(dòng)態(tài)類型 27
2.3.3 執(zhí)行過程 28
2.3.4 小結(jié) 34
2.4 中間代碼生成 34
2.4.1 概述 34
2.4.2 配置初始化 35
2.4.3 遍歷和替換 37
2.4.4 SSA生成 40
2.4.5 小結(jié) 44
2.5 機(jī)器碼生成 44
2.5.1 指令集架構(gòu) 44
2.5.2 機(jī)器碼生成 45
2.5.3 小結(jié) 49
2.5.4 延伸閱讀 50
第3章 數(shù)據(jù)結(jié)構(gòu) 51
3.1 數(shù)組 51
3.1.1 概述 51
3.1.2 初始化 52
3.1.3 訪問和賦值 55
3.1.4 小結(jié) 57
3.1.5 延伸閱讀 58
3.2 切片 58
3.2.1 數(shù)據(jù)結(jié)構(gòu) 58
3.2.2 初始化 59
3.2.3 訪問元素 63
3.2.4 追加和擴(kuò)容 64
3.2.5 復(fù)制切片 67
3.2.6 小結(jié) 68
3.2.7 延伸閱讀 68
3.3 哈希表 68
3.3.1 設(shè)計(jì)原理 69
3.3.2 數(shù)據(jù)結(jié)構(gòu) 72
3.3.3 初始化 74
3.3.4 讀寫操作 77
3.3.5 小結(jié) 88
3.3.6 延伸閱讀 88
3.4 字符串 88
3.4.1 數(shù)據(jù)結(jié)構(gòu) 89
3.4.2 解析過程 89
3.4.3 拼接 91
3.4.4 類型轉(zhuǎn)換 93
3.4.5 小結(jié) 95
3.4.6 延伸閱讀 95
第4章 語言特性 96
4.1 函數(shù)調(diào)用 96
4.1.1 調(diào)用慣例 96
4.1.2 參數(shù)傳遞 101
4.1.3 小結(jié) 104
4.1.4 延伸閱讀 104
4.2 接口 105
4.2.1 概述 105
4.2.2 數(shù)據(jù)結(jié)構(gòu) 111
4.2.3 類型轉(zhuǎn)換 113
4.2.4 類型斷言 116
4.2.5 動(dòng)態(tài)派發(fā) 118
4.2.6 小結(jié) 122
4.2.7 延伸閱讀 122
4.3 反射 123
4.3.1 三大法則 124
4.3.2 類型和值 127
4.3.3 更新變量 129
4.3.4 實(shí)現(xiàn)協(xié)議 130
4.3.5 方法調(diào)用 132
4.3.6 小結(jié) 135
4.3.7 延伸閱讀 135
第5章 常用關(guān)鍵字 136
5.1 for和range 136
5.1.1 現(xiàn)象 137
5.1.2 經(jīng)典循環(huán) 140
5.1.3 范圍循環(huán) 141
5.1.4 小結(jié) 147
5.2 select 148
5.2.1 現(xiàn)象 148
5.2.2 數(shù)據(jù)結(jié)構(gòu) 151
5.2.3 實(shí)現(xiàn)原理 151
5.2.4 小結(jié) 160
5.2.5 延伸閱讀 161
5.3 defer 161
5.3.1 現(xiàn)象 161
5.3.2 數(shù)據(jù)結(jié)構(gòu) 163
5.3.3 執(zhí)行機(jī)制 164
5.3.4 堆中分配 164
5.3.5 棧上分配 168
5.3.6 開放編碼 169
5.3.7 小結(jié) 173
5.3.8 延伸閱讀 174
5.4 panic和recover 174
5.4.1 現(xiàn)象 175
5.4.2 數(shù)據(jù)結(jié)構(gòu) 177
5.4.3 程序崩潰 178
5.4.4 崩潰恢復(fù) 179
5.4.5 小結(jié) 181
5.4.6 延伸閱讀 181
5.5 make和new 181
5.5.1 make 182
5.5.2 new 183
5.5.3 小結(jié) 184
第6章 并發(fā)編程 185
6.1 上下文 185
6.1.1 設(shè)計(jì)原理 186
6.1.2 默認(rèn)上下文 187
6.1.3 取消信號(hào) 188
6.1.4 傳值方法 192
6.1.5 小結(jié) 192
6.1.6 延伸閱讀 192
6.2 同步原語與鎖 193
6.2.1 基本原語 193
6.2.2 擴(kuò)展原語 209
6.2.3 小結(jié) 218
6.2.4 延伸閱讀 218
6.3 計(jì)時(shí)器 219
6.3.1 設(shè)計(jì)原理 219
6.3.2 數(shù)據(jù)結(jié)構(gòu) 222
6.3.3 狀態(tài)機(jī) 223
6.3.4 觸發(fā)計(jì)時(shí)器 229
6.3.5 小結(jié) 231
6.3.6 延伸閱讀 232
6.3.7 歷史變更 232
6.4 Channel 232
6.4.1 設(shè)計(jì)原理 232
6.4.2 數(shù)據(jù)結(jié)構(gòu) 234
6.4.3 創(chuàng)建Channel 235
6.4.4 發(fā)送數(shù)據(jù) 237
6.4.5 接收數(shù)據(jù) 240
6.4.6 關(guān)閉Channel 245
6.4.7 小結(jié) 246
6.4.8 延伸閱讀 246
6.5 調(diào)度器 246
6.5.1 設(shè)計(jì)原理 247
6.5.2 數(shù)據(jù)結(jié)構(gòu) 255
6.5.3 調(diào)度器啟動(dòng) 260
6.5.4 創(chuàng)建Goroutine 261
6.5.5 調(diào)度循環(huán) 266
6.5.6 觸發(fā)調(diào)度 269
6.5.7 線程管理 274
6.5.8 小結(jié) 276
6.5.9 延伸閱讀 276
6.6 網(wǎng)絡(luò)輪詢器 276
6.6.1 設(shè)計(jì)原理 276
6.6.2 數(shù)據(jù)結(jié)構(gòu) 280
6.6.3 多路復(fù)用 281
6.6.4 小結(jié) 288
6.6.5 延伸閱讀 289
6.7 系統(tǒng)監(jiān)控 289
6.7.1 設(shè)計(jì)原理 289
6.7.2 監(jiān)控循環(huán) 289
6.7.3 小結(jié) 296
第7章 內(nèi)存管理 297
7.1 內(nèi)存分配器 297
7.1.1 設(shè)計(jì)原理 297
7.1.2 內(nèi)存管理組件 304
7.1.3 內(nèi)存分配 317
7.1.4 小結(jié) 322
7.1.5 延伸閱讀 322
7.1.6 歷史變更 322
7.2 垃圾收集器 323
7.2.1 設(shè)計(jì)原理 323
7.2.2 演進(jìn)過程 331
7.2.3 實(shí)現(xiàn)原理 334
7.2.4 小結(jié) 358
7.2.5 延伸閱讀 358
7.3 棧空間管理 358
7.3.1 設(shè)計(jì)原理 359
7.3.2 棧操作 363
7.3.3 小結(jié) 369
7.3.4 延伸閱讀 370
第8章 元編程 371
8.1 插件系統(tǒng) 371
8.1.1 設(shè)計(jì)原理 371
8.1.2 動(dòng)態(tài)庫 373
8.1.3 小結(jié) 376
8.1.4 延伸閱讀 376
8.2 代碼生成 377
8.2.1 設(shè)計(jì)原理 377
8.2.2 代碼生成 377
8.2.3 小結(jié) 382
第9章 標(biāo)準(zhǔn)庫 383
9.1 JSON 383
9.1.1 設(shè)計(jì)原理 383
9.1.2 序列化 385
9.1.3 反序列化 389
9.1.4 小結(jié) 392
9.2 HTTP 392
9.2.1 設(shè)計(jì)原理 393
9.2.2 客戶端 395
9.2.3 服務(wù)端 402
9.2.4 小結(jié) 406
9.3 數(shù)據(jù)庫 406
9.3.1 設(shè)計(jì)原理 406
9.3.2 驅(qū)動(dòng)接口 407
9.3.3 小結(jié) 410