go並發編程實戰(2020年清華大學出版社出版的圖書)

go並發編程實戰(2020年清華大學出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《go並發編程實戰》是2020年9月清華大學出版社出版的圖書,作者是汪明。本書從Go語言基本語法出發,結合示例代碼,詳細講解數組、切片、函式、結構體、接口以及面向對象編程等知識點,前後通過一個實戰項目來說明如何從頭到尾搭建一個並發聊天程式。本書配有源碼、課件、開發環境和教學視頻。

基本介紹

  • 中文名:go並發編程實戰
  • 作者:汪明
  • 出版社:清華大學出版社
  • 出版時間:2020年9月
  • ISBN:9787302560449
內容簡介,圖書目錄,作者簡介,

內容簡介

Go語言在多核硬體架構、超大規模分散式計算集群和Web套用上具有明顯的優勢,目前Google、Facebook、AWS、Mozilla、七牛、阿里、騰訊、百度、*等大公司都已經開始使用Go語言開發其雲計算產品。 本書分為12章,第1章介紹Go語言的基本開發環境;第2章介紹Go語言的語法基礎;第3章介紹Go語言的函式;第4章介紹Go語言的流程控制與錯誤處理;第5章介紹Go語言中的結構體、數組、切片和字典等;第6章介紹Go語言中的指針;第7章介紹Go語言的面向對象用法;第8章介紹Go語言檔案讀寫;第9章介紹Go語言的並發編程;第10章介紹Go語言的反射特性;第11章介紹Go語言如何構建Web服務;第12章用Go語言實現了一個並發聊天實戰項目。本書配套源碼、課件、開發環境和教學視頻。 本書內容詳盡、示例豐富,是一本Go語言的入門教材,非常適合有一定編程基礎的讀者學習使用。當然,本書也適合對編程感興趣的讀者學習。同時,本書也非常適合高等院校的師生學習閱讀,可作為高等院校計算機及相關專業的教材。

圖書目錄

第1章 搭建Go開發環境 1
1.1 Go的語言特性 1
1.2 安裝 4
1.2.1 Windows下安裝Go 5
1.2.2 Linux下安裝Go 7
1.3 配置環境變數 7
1.3.1 Windows下的環境變數配置 7
1.3.2 Linux下的環境變數配置 8
1.4 個Go程式 9
1.4.1 搭建本書項目代碼結構 9
1.4.2 創建並運行個Go程式 10
1.4.3 Go程式的編譯 11
1.4.4 Go的幫助系統 12
1.5 運行時 15
1.6 編譯器 16
1.6.1 詞法分析和語法分析 17
1.6.2 類型檢查 17
1.6.3 生成SSA中間代碼 17
1.6.4 生成機器代碼 18
1.7 Go程式的集成開發環境 18
1.8 演練:Exit自動退出程式 23
1.9 本章小結 25
第2章 Go程式的基礎要素 26
2.1 命名規範 26
2.2 包 27
2.2.1 包的導入 29
2.2.2 包的嵌套 32
2.2.3 特殊的init函式 33
2.3 數據類型 35
2.3.1 字元串類型 36
2.3.2 數值類型 38
2.3.3 布爾類型 39
2.3.4 派生類型 40
2.4 常量 40
2.5 變數 42
2.6 運算符 44
2.6.1 算術運算符 44
2.6.2 關係運算符 45
2.6.3 邏輯運算符 46
2.6.4 位運算符 47
2.6.5 賦值運算符 48
2.6.6 特殊運算符 49
2.6.7 運算符的優先權 50
2.7 注釋 50
2.8 類型轉換 51
2.9 演練:原子計算器 54
2.10 小結 55
第3章 函式 56
3.1 函式的結構 57
3.1.1 Go語言函式的基本結構 57
3.1.2 函式中的變數存儲(堆疊) 58
3.1.3 函式返回函式 60
3.2 函式返回多個值的特性 61
3.3 作用域 62
3.4 匿名函式 63
3.4.1 匿名函式的即時調用 63
3.4.2 匿名函式的重複調用 64
3.5 變長函式 65
3.6 遞歸函式 66
3.6.1 使用遞歸函式求解斐波那契數列 66
3.6.2 使用循環代替遞歸的方法 67
3.7 回調函式 68
3.8 閉包 70
3.9 defer關鍵字 71
3.10 演練:原子計算器2.0疊代版 72
3.11 小結 74
第4章 流程控制與錯誤處理 75
4.1 if判斷 75
4.1.1 if語句的基本語法 75
4.1.2 if語句中的變數作用域 77
4.2 switch條件判斷語句 78
4.2.1 switch語句中的基本語法 78
4.2.2 fallthrough穿透 80
4.2.3 case多個表達式 81
4.2.4 switch省略判斷條件 82
4.3 for循環語句 83
4.4 break與continue 85
4.5 Go的錯誤處理機制 86
4.5.1 error 86
4.5.2 panic 87
4.6 演練:哲學的三段論 88
4.7 小結 93
第5章 複合數據類型 94
5.1 type關鍵字 94
5.2 struct類型 97
5.2.1 聲明struct 98
5.2.2 struct作為函式的參數 100
5.2.3 給struct定義方法 102
5.2.4 struct嵌套 102
5.3 匿名struct類型 103
5.4 數組 106
5.4.1 創建數組 106
5.4.2 數組作為函式的參數 108
5.4.3 二維數組 110
5.4.4 數組元素是struct 111
5.5 切片 112
5.5.1 切片的內部實現 113
5.5.2 切片的切割 115
5.5.3 切片的擴容 118
5.5.4 切片作為函式的參數 120
5.6 字典 122
5.6.1 創建字典 122
5.6.2 字典作為函式的參數 123
5.7 range關鍵字 124
5.8 演練:記憶體資料庫 126
5.9 小結 135
第6章 指針 136
6.1 記憶體地址 136
6.2 指針的套用 141
6.2.1 什麼是指針 141
6.2.2 聲明指針 142
6.2.3 關鍵字new 142
6.2.4 獲取元素地址 143
6.2.5 unsafe包 145
6.2.6 指針的指針 147
6.3 野指針 148
6.4 值傳參與地址傳參 149
6.5 演練:Go單向鍊表的實現 151
6.6 小結 157
第7章 面向對象和接口 158
7.1 結構體實現封裝 158
7.2 組合實現繼承 161
7.3 接口實現 163
7.4 類型判斷與斷言 166
7.5 接口實現多態 169
7.6 演練:SQL生成器的實現 171
7.7 小結 179
第8章 檔案讀寫 180
8.1 檔案讀取 180
8.1.1 整塊讀取 180
8.1.2 分位元組讀取 183
8.1.3 分行讀取 185
8.2 檔案寫入 187
8.2.1 整塊寫入 187
8.2.2 分位元組寫入 189
8.2.3 分行寫入 191
8.3 自己開發io包下的讀寫接口 192
8.4 目錄操作 195
8.4.1 目錄的基本操作 195
8.4.2 目錄的遍歷 197
8.5 演練:property配置檔案的操作 198
8.6 小結 200
第9章 圖解並發編程 201
9.1 單核並發 202
9.2 鎖機制 207
9.3 並行——多核並行 211
9.4 Go調度器 216
9.5 協程 218
9.6 協程間通信 223
9.6.1 共享變數 223
9.6.2 信道 224
9.7 無緩衝信道 225
9.8 有緩衝信道 232
9.9 信道和緩衝生成I/O流 235
9.10 協程調試 236
9.10.1 死鎖 236
9.10.2 數據競爭 237
9.10.3 協程泄漏 240
9.11 協程性能測試 244
9.11.1 Go語言自帶的測試工具 244
9.11.2 性能測試工具pprof 246
9.11.3 追蹤分析工具go tool trace 249
9.12 演練:單機MapReduce單詞統計 252
9.13 小結 258
第10章 反射 259
10.1 反射的概念和基本用法 259
10.2 獲取結構體欄位和方法 265
10.3 反射動態修改值 268
10.4 獲取結構體欄位標識 270
10.5 判斷是否實現接口 272
10.6 動態調用方法 274
10.7 演練:ORM基本實現 276
10.8 小結 282
第11章 Go的Web服務 283
11.1 HTTP/HTTPS 283
11.1.1 HTTP協定原理 284
11.1.2 HTTPS協定原理 285
11.1.3 Go語言的net/http包 286
11.1.4 使用Go語言構建HTTP Web服務程式 287
11.2 WebSocket 294
11.2.1 WebSocket協定原理 294
11.2.2 使用Go語言實現WebSocket服務端 296
11.2.3 使用Go語言實現WebSocket客戶端 298
11.3 SSE 299
11.3.1 SSE技術原理 299
11.3.2 使用Go語言實現SSE通信 300
11.4 演練:構建自己的Web伺服器 305
11.5 小結 313
第12章 實戰:並發聊天 314
12.1 需求描述 314
12.2 需求分析 315
12.3 技術選型 316
12.4 架構 317
12.5 代碼分析 319
12.6 小結 334

作者簡介

汪明,碩士,徐州軟體協會副理事長,某創業公司合伙人。從事軟體行業十餘年,發表論文數十篇,擅長JavaScript、C、Java、等傳統語言,也擅長TypeScript、Go等新語言。著有圖書《TypeScript實戰》。

相關詞條

熱門詞條

聯絡我們