Go語言 Web 編程實戰
廖顯東
- 出版商: 電子工業
- 出版日期: 2025-05-01
- 售價: $648
- 語言: 簡體中文
- 頁數: 352
- ISBN: 7121501627
- ISBN-13: 9787121501623
下單後立即進貨 (約4週~6週)
相關主題
商品描述
本書涵蓋從Go語言入門到Go Web開發高級應用所需的核心知識、方法和技巧,共分4篇。第1篇“Go語言入門”,介紹Go語言的基礎語法,即使是沒有Go語言基礎的讀者也可以學習本書。第2篇“Go Web基礎入門”,介紹能使讀者快速掌握用Go語言進行Web開發的基礎知識。第3篇“Go Web高級應用”,教會讀者用Go語言快速開發各種Web應用。第4篇“Go Web項目實戰”,通過實例介紹了開發一個B2C電子商務系統的全過程,並用Docker部署Go Web應用。本書可作為Go語言初學者、Web開發工程師的自學用書,也可作為培訓機構和相關院校的教材。
目錄大綱
●第1篇 Go語言入門
第1章 Go基礎入門 2
1.1 安裝Go 2
1.2 【實戰】開啟Go的第一個程序 4
1.2.1 聲明包 5
1.2.2 導入包 5
1.2.3 main()函數 6
1.3 Go基礎語法與使用 7
1.3.1 基礎語法 7
1.3.2 變量 10
1.3.3 常量 13
1.3.4 運算符 15
1.3.5 流程控制語句 16
1.4 Go數據類型 26
1.4.1 布爾類型 27
1.4.2 數字類型 29
1.4.3 字符串類型 29
1.4.4 指針類型 34
1.4.5 覆合類型 35
1.5 函數 44
1.5.1 聲明函數 44
1.5.2 函數參數 45
1.5.3 匿名函數 47
1.5.4 疊代器函數 49
1.5.5 defer延遲語句 50
1.6 Go面向對象編程 52
1.6.1 封裝 52
1.6.2 繼承 54
1.6.3 多態 56
1.7 接口 57
1.7.1 接口的定義 57
1.7.2 接口的賦值 58
1.7.3 接口的查詢 61
1.7.4 接口的組合 62
1.8 反射 63
1.8.1 反射的定義 63
1.8.2 反射的三大法則 64
1.9 泛型 65
1.10 goroutine簡介 68
1.11 單元測試 69
1.12 模塊系統 72
1.13 Go編譯與工具 75
1.13.1 編譯(go build) 75
1.13.2 編譯後運行(go run) 81
1.13.3 編譯並安裝(go install) 81
1.13.4 獲取代碼(go get) 82
//
第2篇 Go Web基礎入門
//
第2章 Go Web開發基礎 86
2.1 【實戰】開啟Go Web的第1個程序 86
2.2 Web應用程序運行原理簡介 87
2.2.1 Web基本原理 87
2.2.2 Web應用程序的組成 88
2.3 【實戰】初探Go語言的net/http包 90
2.3.1 創建簡單的服務器端 91
2.3.2 創建簡單的客戶端 92
2.4 使用Go語言的html/template包 94
2.4.1 瞭解模板的原理 94
2.4.2 使用html/template包 95
第3章 接收和處理Go Web請求 101
3.1 【實戰】創建一個簡單的Go Web服務器 101
3.2 接收請求 103
3.2.1 ServeMux和DefaultServeMux 103
3.2.2 處理器和處理器函數 111
3.2.3 串聯多個處理器和處理器函數 114
3.2.4 生成HTML表單 115
3.3 處理請求 117
3.3.1 瞭解Request結構體 117
3.3.2 請求URL 118
3.3.3 請求頭 119
3.3.4 請求體 120
3.3.5 處理HTML表單 121
3.3.6 瞭解ResponseWriter的原理 124
3.4 瞭解session和cookie 129
3.4.1 session和cookie簡介 129
3.4.2 Go與cookie 132
3.4.3 Go使用session 134
//
第4章 用Go訪問數據庫 139
4.1 MySQL的安裝及使用 139
4.1.1 MySQL簡介 139
4.1.2 MySQL的安裝 139
4.1.3 用Go訪問MySQL 140
4.2 Redis的安裝及使用 146
4.2.1 Redis的安裝 146
4.2.2 Go訪問Redis 147
4.3 MongoDB的安裝及使用 151
4.3.1 MongoDB的安裝 151
4.3.2 Go訪問MongoDB 152
4.4 Go的常見ORM庫 159
4.4.1 什麽是ORM 159
4.4.2 Gorm(性能極好的ORM庫)的安裝及使用 160
4.4.3 Beego ORM――Go語言的ORM框架 164
//
第3篇 Go Web高級應用
//
第5章 Go高級網絡編程 170
5.1 Go Socket編程 170
5.1.1 什麽是Socket 170
5.1.2 客戶端net.Dial()函數的使用 173
5.1.3 客戶端net.DialTCP()函數的使用 174
5.1.4 UDP Socket的使用 177
5.1.5 【實戰】用Go Socket實現一個簡易的聊天程序 180
5.2 Go RPC編程 184
5.2.1 什麽是RPC 184
5.2.2 Go RPC的應用 185
5.3 微服務 191
5.3.1 什麽是微服務 191
5.3.2 【實戰】用gRPC框架構建一個簡易的微服務 194
//
第6章 Go文件處理 200
6.1 操作目錄與文件 200
6.1.1 操作目錄 200
6.1.2 創建文件 201
6.1.3 打開與關閉文件 201
6.1.4 讀寫文件 202
6.1.5 移動與重命名文件 203
6.1.6 刪除文件 203
6.1.7 覆制文件 204
6.1.8 修改文件權限 204
6.1.9 文件鏈接 206
6.1.10 嵌入靜態文件 206
6.2 處理XML文件 208
6.2.1 解析XML文件 208
6.2.2 生成XML文件 210
6.3 處理JSON文件 212
6.3.1 讀取JSON文件 212
6.3.2 生成JSON文件 214
6.4 處理正則表達式 215
6.4.1 獲取正則對象 215
6.4.2 匹配檢測 216
6.4.3 查找字符和字符串 216
6.4.4 查找匹配位置 217
6.4.5 替換字符 218
6.4.6 分割字符串 219
6.5 【實戰】從數據庫中導出一個CSV文件 220
//
第7章 Go並發編程 223
7.1 並發與並行 223
7.2 進程、線程和協程 225
7.3 Go並發模型簡介 227
7.4 用goroutine和通道實現並發 228
7.4.1 goroutine簡介 228
7.4.2 通道 229
7.5 用sync包實現並發 233
7.5.1 競態 233
7.5.2 互斥鎖 234
7.5.3 讀寫互斥鎖 235
7.5.4 sync.Once結構體 236
7.5.5 同步等待組sync.WaitGroup 238
7.5.6 競態檢測器 240
7.5.7 sync/atomic 包擴展 241
7.6 用Go開發並發的Web應用 243
7.6.1 【實戰】開發一個自增整數生成器 243
7.6.2 【實戰】開發一個並發的消息發送器 243
7.6.3 【實戰】開發一個多路合並計算器 244
7.6.4 【實戰】用select關鍵字創建多通道監聽器 245
7.6.5 【實戰】用無緩沖通道阻塞主線 247
7.6.6 【實戰】用篩法求素數 248
7.6.7 【實戰】創建隨機數生成器 249
7.6.8 【實戰】創建一個定時器 250
7.6.9 【實戰】開發一個並發的Web爬蟲 251
//
第8章 Go RESTful API開發 255
8.1 什麽是RESTful API 255
8.2 Go流行Web框架的使用 257
8.2.1 為什麽要用框架 257
8.2.2 Gin框架的使用 257
8.2.3 Beego框架的使用 264
8.3 【實戰】用Gin框架開發RESTful API 276
8.3.1 路由設計 276
8.3.2 數據表設計 276
8.3.3 模型代碼編寫 276
8.3.4 邏輯代碼編寫 277
8.4 【實戰】用Go開發OAuth 2.0接口 279
8.4.1 OAuth 2.0簡介 279
8.4.2 用Go開發OAuth 2.0接口的示例 281
//
第4篇 Go Web項目實戰
//
第9章 【實戰】開發一個B2C電子商務系統 286
9.1 需求分析 286
9.2 系統設計 287
9.2.1 確定系統架構 287
9.2.2 制定系統流程 288
9.3 設計軟件架構 289
9.4 設計數據庫與數據表 290
9.5 搭建系統基礎架構 291
9.5.1 創建公共文件 291
9.5.2 創建模型 295
9.6 前臺模塊開發 299
9.6.1 首頁模塊開發 299
9.6.2 註冊登錄模塊開發 306
9.6.3 用戶中心模塊開發 314
9.6.4 購物車模塊開發 317
9.6.5 收銀台模塊開發 320
9.6.6 支付模塊開發 322
9.7 後台模塊開發 325
9.7.1 登錄模塊開發 326
9.7.2 商品模塊開發 326
//
第10章 用Docker部署Go Web應用 329
10.1 瞭解Docker組件及原理 329
10.1.1 什麽是Docker 329
10.1.2 為什麽用Docker 330
10.1.3 Docker引擎 331
10.1.4 Docker構架 332
10.1.5 Docker核心概念 332
10.2 安裝Docker 333
10.3 【實戰】用Docker運行一個Go Web應用 335
10.3.1 創建Go Web應用 335
10.3.2 用Docker運行Go Web應用 335
10.4 【實戰】通過Docker-Compose部署容器集群 336
10.4.1 Docker-Compose簡介 337
10.4.2 通過Docker-Compose實戰部署 337
10.5 【實戰】將Docker容器推送至服務器 339
10.5.1 在Docker Hub官網註冊賬號 339
10.5.2 同步本地和Docker Hub的標簽(tag) 339
10.5.3 推送鏡像到Docker Hub 340
10.5.4 訪問Docker Hub鏡像 340
10.5.5 使用發布的Docker Hub鏡像 341