Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用 Practical Go: Building Scalable Network and Non-Network Applications
[澳]阿米特·薩哈(Amit Saha)著 賈玉彬 劉光磊 譯 上海碳澤信息科技有限公司 審校
- 出版商: 清華大學
- 出版日期: 2022-11-01
- 售價: $588
- 貴賓價: 9.5 折 $559
- 語言: 簡體中文
- ISBN: 7302615896
- ISBN-13: 9787302615897
-
相關分類:
Go 程式語言、HTTP
- 此書翻譯自: Practical Go: Building Scalable Network and Non-Network Applications (Paperback)
立即出貨
買這商品的人也買了...
-
$229Python 編程基礎與 HTTP 接口測試
-
$458Visual C++ 從入門到精通, 5/e
-
$600$468 -
$580$458 -
$454高性能 Java 架構:核心原理與案例實戰
-
$580$458 -
$602深入理解 RPC 框架原理與實現
-
$607Go 語言高級開發與實戰
-
$700$553 -
$780$616 -
$594$564 -
$680$530 -
$454打開 Go 語言之門:入門、實戰與進階
-
$880$695 -
$654$621 -
$648$616 -
$880$695 -
$620$484 -
$780$616 -
$806深入理解 Go 並發編程:從原理到實踐,看這本就夠了
-
$828$787 -
$680$537 -
$839$797 -
$1,800$1,422 -
$690$483
相關主題
商品描述
主要內容 ● 編寫命令行應用程序 ● 編寫HTTP服務和客戶端 ● 使用gRPC編寫RPC應用程序 ● 為網絡客戶端和服務器編寫中間件 ● 在雲對象存儲和SQL數據庫中存儲數據 ● 使用慣用的技術測試應用程序 ● 為應用程序增加可觀察性 ● 管理應用程序的配置數據
目錄大綱
目錄
第1章 編寫命令行應用程序 1
1.1 我們的第一個應用程序 1
1.2 編寫單元測試 8
1.3 使用flag包 14
1.4 改進用戶界面 22
1.4.1 刪除重復的錯誤消息 22
1.4.2 自定義用例消息 23
1.4.3 通過位置參數接收姓名 24
1.5 更新單元測試 27
1.6 小結 32
第2章 高級命令行應用程序 33
2.1 實現子命令 33
2.1.1 子命令驅動的應用程序架構 37
2.1.2 測試main包 43
2.1.3 測試cmd包 45
2.2 使應用程序更健壯 47
2.2.1 帶有超時的用戶輸入 48
2.2.2 處理用戶信號 51
2.3 小結 55
第3章 編寫HTTP客戶端 57
3.1 下載數據 57
3.2 反序列化接收到的數據 61
3.3 發送數據 65
3.4 使用二進制數據 71
3.5 小結 78
第4章 高級HTTP客戶端 79
4.1 使用自定義HTTP客戶端 79
4.1.1 從過載的服務器下載 79
4.1.2 測試超時行為 83
4.1.3 配置重定向行為 86
4.2 定製請求 89
4.3 實現客戶端中間件 90
4.3.1 瞭解RoundTripper接口 90
4.3.2 日誌中間件 91
4.3.3 給所有請求添加一個標頭 94
4.4 連接池 97
4.5 小結 101
第5章 構建HTTP服務器 103
5.1 我們的第一個HTTP服務器 103
5.2 設置請求處理程序 106
處理程序 106
5.3 測試服務器 109
5.4 Request(請求)結構 112
5.4.1 方法 112
5.4.2 URL 112
5.4.3 Proto、ProtoMajor和ProtoMinor 113
5.4.4 標頭 113
5.4.5 主機 113
5.4.6 正文 113
5.4.7 Form、PostForm 113
5.4.8 MultipartForm 114
5.5 將元數據附加到請求 115
5.6 處理流請求 118
5.7 將流數據作為響應 123
5.8 小結 128
第6章 高級HTTP服務器應用程序 129
6.1 處理程序的類型 129
6.2 跨處理程序共享數據 130
6.3 編寫服務器中間件 135
6.3.1 自定義HTTP處理程序技術 135
6.3.2 HandlerFunc技術 136
6.3.3 鏈接中間件 138
6.4 為復雜的服務器應用程序編寫測試 142
6.4.1 組織代碼 143
6.4.2 測試處理程序 148
6.4.3 測試中間件 151
6.4.4 測試服務器啟動 153
6.5 小結 155
第7章 生產級HTTP服務器 157
7.1 終止請求處理 157
7.1.1 終止請求處理的策略 160
7.1.2 處理客戶端斷開連接 165
7.2 服務器範圍的超時 168
7.2.1 為所有處理程序實現超時 169
7.2.2 實現服務器超時 169
7.3 實施優雅的關機 174
7.4 使用TLS保護通信 178
7.4.1 配置TLS和HTTP/2 179
7.4.2 測試TLS服務器 183
7.5 小結 186
第8章 使用gRPC構建RPC應用程序 187
8.1 gRPC和協議緩沖區 187
8.2 編寫第一個服務 190
8.2.1 編寫服務器 192
8.2.2 編寫一個客戶端 196
8.2.3 測試服務器 201
8.2.4 測試客戶端 204
8.3 protobuf消息的詳細介紹 207
8.3.1 序列化和反序列化 207
8.3.2 向前和向後兼容 212
8.4 多個服務 214
8.5 錯誤處理 219
8.6 小結 221
第9章 高級gRPC應用 223
9.1 流通信 223
9.1.1 服務器端流傳輸 223
9.1.2 客戶端流傳輸 231
9.1.3 雙向流 233
9.2 接收和發送任意字節 241
9.3 使用攔截器實現中間件 250
9.3.1 客戶端攔截器 251
9.3.2 服務器端攔截器 257
9.3.3 包裝流 262
9.3.4 鏈接攔截器 264
9.4 小結 265
第10章 生產級gRPC應用 267
10.1 使用TLS保護通信 267
10.2 服務器健壯性 270
10.2.1 實施健康檢查 270
10.2.2 處理運行時錯誤 277
10.2.3 終止請求處理 280
10.3 客戶端健壯性 289
10.3.1 提高連接配置 289
10.3.2 處理瞬態故障 291
10.3.3 為方法調用設置超時 296
10.4 連接管理 297
10.5 小結 299
第11章 使用數據存儲 301
11.1 使用對象存儲 302
11.1.1 與包服務器集成 303
11.1.2 測試包上傳 312
11.1.3 訪問底層驅動類型 315
11.2 使用關系數據庫 316
11.2.1 與包服務器集成 318
11.2.2 測試數據存儲 328
11.2.3 數據類型轉換 332
11.2.4 使用數據庫事務 335
11.3 小結 337
—— 以下部分通過掃描封底二維碼獲取 ——
附錄A 使應用程序可觀察 339
附錄B 部署應用程序 356
附錄C 配置Go開發環境 362