Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用 Practical Go: Building Scalable Network and Non-Network Applications

[澳]阿米特·薩哈(Amit Saha)著 賈玉彬 劉光磊 譯 上海碳澤信息科技有限公司 審校

  • Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用-preview-1
  • Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用-preview-2
  • Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用-preview-3
Go 編程進階實戰:開發命令行應用、HTTP 應用和 gRPC 應用-preview-1

買這商品的人也買了...

商品描述

主要內容 ● 編寫命令行應用程序 ● 編寫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