Go語言項目開發上手指南

謝偉

  • 出版商: 機械工業
  • 出版日期: 2021-07-01
  • 定價: $714
  • 售價: 7.5$536
  • 語言: 簡體中文
  • 頁數: 460
  • 裝訂: 平裝
  • ISBN: 7111684567
  • ISBN-13: 9787111684565
  • 立即出貨

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

商品描述

本書是學習Go語言項目開發的指南。
全書共13章,前4章介紹Go語言的特性,接下來的8章針對不同的應用場景介紹如何進行功能的開發,
內容包括圖表庫、單元測試、網絡爬蟲程序、私有庫、RESTful風格的Web開發、
面向接口編程等,最後一章介紹Go開發的路線。

目錄大綱

前言
第1章 概述 1
1.1 Go語言的特性 1
1.2 開發環境的搭建 2
1.2.1 下載與目標操作系統匹配的安裝包 2
1.2.2 設置環境變量 2
1.2.3 集成開發環境的選擇 4
1.2.4 編寫第一個Go程序 4
1.3 Go命令行和項目結構 5
1.3.1 需要GOPATH支持的方式 5
1.3.2 不需要GOPATH支持的方式 5
1.4 本章小結 5

第2章 基礎知識 6
2.1 引子 6
2.2 了解Go語言的基本語法 7
2.2.1 變量 7
2.2.2 聲明與賦值 7
2.2.3 多個變量的聲明與賦值 8
2.2.4 變量的作用域 8
2.2.5 常量 9
2.2.6 基本數據類型 9
2.2.7 類型轉換 12
2.2.8 自定義類型 12
2.2.9 函數 13
2.2.10 流程控制 15
2.2.11 結構體 19
2.2.12 接口 21
2.3 本章小結 22

第3章 數據操作 23
3.1 變量 23
3.1.1 顯式聲明與隱式聲明 23
3.1.2 組織多個變量 24
3.1.3 變量的命名應遵循的原則 25
3.2 運算 26
3.2.1 算術運算 26
3.2.2 邏輯運算 27
3.3 數組和切片 28
3.4 字典 29
3.5 結構體 30
3.5.1 匿名字段 31
3.5.2 小結 32
3.6 接口 33
3.6.1 error 33
3.6.2 Marshaler 34
3.7 庫(包)管理 36
3.7.1 庫(包)的導入 36
3.7.2 下載庫(包) 36
3.8 項目組織的結構 37
3.8.1 領域驅動的方式 37
3.8.2 業務驅動的方式 38
3.9 本章小結 38

第4章 內置庫的常用操作 39
4.1 字符串 39
4.2 bytes 45
4.3 json 47
4.4 io/bufio 48
4.5 fmt 51
4.6 strconv 55
4.7 time 57
4.8 regexp 59
4.9 log 62
4.10 reflect/unsafe 65
4.11 os/path/filepath 69
4.12 unicode 78
4.13 flag 80
4.14 net/url 84
4.15 net/http 87
4.16 sort 94
4.17 error 97
4.18 本章小結 99

第5章 編寫圖表庫 100
5.1 常見的開源圖表庫 100
5.1.1 ECharts 100
5.1.2 BizCharts 103
5.1.3 chart.js 105
5.1.4 HighCharts 106
5.1.5 小結 108
5.2 模板引擎的使用 108
5.3 使用模板引擎構建圖表 111
5.4 基於chart.js構建圖表庫go-chart 121
5.4.1 項目組織結構 122
5.4.2 模板文件 123
5.4.3 基礎數據 124
5.4.4 圖表類型 128
5.5 本章小結 132

第6章 編寫測試 133
6.1 單元測試 133
6.2 基本的使用 134
6.2.1 常見用法 134
6.2.2 樣本測試 135
6.2.3 SetUp/TearDown 136
6.3 表格驅動法測試 136
6.4 第三方庫goconvey 137
6.5 解決依賴性問題 140
6.5.1 函數依賴關係 140
6.5.2 數據庫的依賴 143
6.6 性能測試 148
6.7 本章小結 150

第7章 網絡爬蟲 151
7.1 網絡爬蟲是什麼 151
7.2 網頁的基本組成 152
7.2.1 HTML 153
7.2.2 Chrome開發者工具的使用 155
7.2.3 小結 162
7.3 原生庫解析HTML網頁 163
7.4 正則表達式解析網頁 165
7.5 網絡爬蟲的流程 167
7.6 網頁源代碼的獲取 168
7.6.1 原生net/http庫 168
7.6.2 Selenium瀏覽器自動化測試 169
7.6.3 Chromedp渲染 172
7.6.4 小結 174
7.7 CSS選擇器解析網頁 174
7.7.1 語法 174
7.7.2 下載安裝 177
7.7.3 示例 177
7.7.4 小結 185
7.8 XPath路徑表達式解析網頁 185
7.8.1 語法 185
7.8.2 下載安裝 187
7.8.3 示例 188
7.8.4 小結 192
7.9 JSON數據解析 192
7.9.1 JSON數據 192
7.9.2 下載安裝 194
7.9.3 v2ex社區實例 195
7.9.4 貓眼票房實例 197
7.10 App端數據的獲取 201
7.10.1 Charles的使用 201
7.10.2 Mitmproxy的使用 203
7.10.3 小結 205
7.11 數據存儲 206
7.11.1 百度搜索指數實例 206
7.11.2 持久化存儲 211
7.11.3 數據庫的形式 214
7.12 本章小結 218

第8章 實現命令行工具 219
8.1 優秀的命令行工具的特點 219
8.1.1 Docker 219
8.1.2 Go 221
8.2 命令行工具需要處理的內容 223
8.3 Go實現命令行的幾種方式 223
8.3.1 內置的os庫 224
8.3.2 內置的flag庫 226
8.3.3 使用第三方庫cobra實現gitcli 233
8.4 本章小結 250

第9章 動手實現一個庫 251
9.1 解決什麼問題 251
9.2 解決方案 253
9.2.1 手動處理 253
9.2.2 參考別人的思路 254
9.2.3 自己的思路 258
9.2.4 持續集成 264
9.2.5 拓展 273
9.3 本章小結 273

第10章 Web服務 275
10.1 使用net/http構建簡易的Web服務 275
10.1.1 啟動Web服務 275
10.1.2 目標 281
10.1.3 模板的使用 281
10.1.4 內容開發 286
10.2 使用net/http構建愛鮮蜂Web服務 317
10.2.1 需求流程梳理 318
10.2.2 模型設計 319
10.2.3 代碼開發 325
10.2.4 項目組織結構 339
10.3 本章小結 375

第11章 Web開發手冊 376
11.1 再談HTTP 376
11.2 設計RESTful API 377
11.2.1 資源的訪問操作 378
11.2.2 路由的設計 379
11.2.3 參數 379
11.2.4 參數檢驗 382
11.2.5 響應信息 383
11.3 數據模型 385
11.3.1 GORM方案 387
11.3.2 XORM方案 387
11.3.3 小結 390
11.4 中間件 391
11.4.1 Gin中間件 394
11.4.2 Echo中間件 395
11.4.3 Iris中間件 396
11.4.4 小結 396
11.5 響應信息 396
11.5.1 正確時的響應信息 397
11.5.2 錯誤時的響應信息 399
11.5.3 小結 399
11.6 項目組織結構 400
11.7 代碼管理和託管 402
11.8 Make構建工具 403
11.8.1 語法規範 403
11.8.2 Go項目的命令 405
11.9 容器化部署 406
11.9.1 Docker容器的使用 407
11.9.2 小結 408
11.10 自動CI/CD 408
11.11 本章小結 413

第12章 面向接口編程 414
12.1 開源 414
12.2 搜索引擎的基本使用 415
12.2.1 下載並安裝 416
12.2.2 docker-compose配置文件 416
12.2.3 查看安裝是否成功 417
12.3 客戶端go-elasticsearch的使用 418
12.3.1 下載並安裝 418
12.3.2 基本的使用 419
12.4 項目組織的形式 420
12.5 面向接口編程 421
12.6 自己實現,學為己用 432
12.7 本章小結 441

第13章 Go學習路徑 442
13.1 內置庫 442
13.1.1 訪問官方文檔 442
13.1.2 文檔的組織 442
13.1.3 閱讀內置庫 444
13.2 版本管理 445
13.2.1 初始化 445
13.2.2 下載 446
13.2.3 移除不需要的模塊 446
13.3 測試驅動開發 446
13.4 命令行 447
13.5 Web開發 447
13.6 SQL與ORM 448
13.7 系統工程 448
13.7.1 需求討論 448
13.7.2 迭代開發/測試 448
13.7.3 代碼版本管理 449
13.7.4 持續集成(CI) 449
13.7.5 持續部署(CD) 450
13.7.6 多組件部署 450
13.7.7 監控運維 450