Go Web編程實戰派——從入門到精通

Go Web編程實戰派——從入門到精通

《Go Web編程實戰派——從入門到精通》是2021年電子工業出版社出版書籍,作者是廖顯東。

基本介紹

  • 中文名:Go Web編程實戰派——從入門到精通
  • 作者:廖顯東
  • 出版時間:2021年4月1日
  • 出版社:電子工業出版社
  • 頁數:536 頁
  • ISBN:9787121408007
  • 類別:計算機
  • 定價:128 元
  • 開本:16 開
內容簡介,作品目錄,作者簡介,

內容簡介

該圖書主要講述了 Go Web開發領域,對Go Web知識進行全面深入地講解。本書有如下特色:
(1)一線技術,突出實戰。
本書中穿插了大量的實戰內容,且所有代碼採用Go最新版本(1.15.3)編寫。
(2)全書的語言經過多次打磨,力求精確。同時注重閱讀體驗,讓沒有任何基礎的讀者也可以很輕鬆地讀懂本書。
(3)零基礎入門,循序漸進,讓讀者快速從菜鳥向實戰高手邁進。
本書以Go入門級程式設計師為主要對象,初級、中級、高級程式設計師都可以從書中學到乾貨。先介紹Go的基礎,然後介紹Go Web的基礎,介紹Go Web的高級套用,介紹B2C電子商務系統實戰開發,最後介紹套用的Docker實戰部署,真正幫助讀者從基礎入門向開發高手邁進。
(4)極客思維,極致效率;
本書以極客思維深入Go語言底層進行探究,幫助讀者了解底層的原理。全書言簡意賅,以幫助讀者提升開發效率為導向,同時儘可能幫助讀者縮短閱讀本書的時間。
(5)由易到難,重點和難點標註並重點解析。
本書編排由易到難,內容基本覆蓋Go Web的主流前沿技術。同時對重點和難點進行重點講解,對易錯點和注意點進行了提示說明,幫助讀者克服學習過程中的困難。
(6)突出實戰,快速突擊。
本書的實例代碼絕大部分都是來自於最新的企業實戰項目。購買本書的讀者可以通過網路下載書中的所有的原始碼,下載後即可運行,通過實踐來加深理解。
(7)實戰方案,可直接二次開發進行實戰部署。
本書以實戰為主,所有的示例代碼拿來即可運行。特別是第9章,購買本書的讀者可以直接獲得B2C電子商務系統的全部原始碼。可以直接對其進行二次開發,用於自己的項目。讀者購買本書不僅可以學習本書的各種知識,也相當於購買一個最新版的Go語言電商系統解決方案及項目源碼。
本書涵蓋從Go語言入門到Go Web開發高手所需的核心知識、方法和技巧,共分4篇。第1篇“Go語言入門”,介紹Go語言的基礎語法,既使沒有Go語言基礎的讀者也可以學習本書。第2篇“Go Web基礎入門”,包括3章:Go Web開發基礎、接收和處理Go Web請求、用Go訪問資料庫。本篇能使讀者快速掌握用Go語言進行Web開發的基礎知識。第3篇“Go Web高級套用”,包括4章:Go高級網路編程、Go檔案處理、Go並發編程、Go RESTful API接口開發。本篇能使讀者用Go語言快速開發各種Web套用。第4篇“Go Web項目實戰”,包括2章:【實戰】開發一個B2C電子商務系統、【實戰】用Docker部署Go Web套用。本篇通過實例介紹了開發一個B2C電子商務系統的全過程,包括開發商品展示、購物車、結算、支付等模組的詳細講解,讓讀者真正了解大型B2C電子商務系統的架構原理及實現方法,並開放了原始碼;用Docker實戰部署Go Web套用,幫助讀者向Go Web開發“精通”級別邁進。本書可作為Go語言初學者、Web開發工程師的自學用書,也可作為培訓機構和相關院校的教材。

作品目錄

第1篇 Go語言入門
第1章 Go基礎入門 2
1.1 安裝Go 2
1.2 【實戰】開啟Go的第一個程式 5
1.3 Go基礎語法與使用 8
1.4 Go數據類型 29
1.5 函式 52
1.7 接口 68
1.8 反射 75
1.9 goroutine簡介 80
1.10 單元測試 81
1.11 Go編譯與工具 83
1.12 小結 91
第2篇 Go Web基礎入門
第2章 Go Web開發基礎 94
2.1 【實戰】開啟Go Web的第1個程式 94
2.2 Web程式運行原理簡介 95
2.2.1 Web基本原理 95
2.2.2 HTTP簡介 97
2.2.3 HTTP請求 97
2.2.4 HTTP回響 100
2.2.5 URI與URL 104
2.2.6 HTTPS簡介 106
2.2.7 HTTP 2簡介 106
2.2.8 Web應用程式的組成 108
2.3 【實戰】初探Go語言的net/http包 110
2.3.1 創建簡單的伺服器端 110
2.3.2 創建簡單的客戶端 114
2.4 使用Go語言的html/template包 118
2.4.1 了解模板原理 118
2.4.2 使用html/template包 120
2.5 小結 131
第3章 接收和處理Go Web請求 132
3.1 【實戰】創建一個簡單的Go Web伺服器 132
3.2 接收請求 134
3.2.1 ServeMux和DefaultServeMux 134
3.2.2 處理器和處理器函式 146
3.2.3 串聯多個處理器和處理器函式 150
3.2.4 構建模型 151
3.2.5 生成HTML表單 153
3.3 處理請求 155
3.3.1 了解Request結構體 155
3.3.2 請求URL 158
3.3.3 請求頭 159
3.3.4 請求體 160
3.3.5 處理HTML表單 161
3.3.6 了解ResponseWriter原理 164
3.4 了解session和cookie 171
3.4.1 session和cookie的簡介 171
3.4.2 Go與cookie 173
3.4.3 Go使用session 176
3.5 小結 181
第4章 用Go訪問資料庫 182
4.1 MySQL的安裝及使用 182
4.1.1 MySQL簡介 182
4.1.2 MySQL的安裝 183
4.1.3 MySQL基礎入門 183
4.1.4 用Go訪問MySQL 193
4.2 Redis的安裝及使用 203
4.2.1 Redis的安裝 203
4.2.2 Redis基礎入門 203
4.2.3 Go訪問Redis 208
4.3 MongoDB的安裝及使用 216
4.3.1 MongoDB的安裝 216
4.3.2 MongoDB基礎入門 217
4.3.3 Go訪問MongoDB 223
4.4 Go的常見ORM庫 237
4.4.1 什麼是ORM 237
4.4.2 Gorm的安裝及使用 238
4.4.3 Beego ORM——Go語言的ORM框架 242
4.5 小結 247
第3篇 Go Web高級套用
第5章 Go高級網路編程 250
5.1.5 【實戰】用Go Socket實現一個簡易的聊天程式 265
5.2 Go RPC編程 270
5.2.1 什麼是RPC 270
5.2.2 Go RPC的套用 271
5.3 微服務 277
5.3.1 什麼是微服務 277
5.3.2 【實戰】用gRPC框架構建一個簡易的微服務 281
5.4 小結 286
第6章 Go檔案處理 287
6.1 操作目錄與檔案 287
6.1.1 操作目錄 287
6.1.2 創建檔案 292
6.1.3 打開與關閉檔案 293
6.1.4 讀寫檔案 294
6.1.5 移動與重命名檔案 299
6.1.6 刪除檔案 299
6.1.7 複製檔案 301
6.1.8 修改檔案許可權 304
6.1.9 檔案連結 306
6.2 處理 XML 檔案 307
6.2.1 解析XML檔案 307
6.2.2 生成XML檔案 310
6.3 處理JSON 檔案 313
6.3.1 讀取JSON檔案 313
6.3.2 生成JSON檔案 315
6.4 處理正則表達式 316
6.4.1 正則表達式簡介 316
6.4.2 使用Go正則表達式 322
6.5 【實戰】從資料庫中導出一個CSV檔案 329
6.6 處理Go日誌記錄 332
6.7 小結 335
第7章 Go並發編程 336
7.1 並發與並行 336
7.2 進程執行緒協程 338
7.3 Go並發模型簡介 340
7.4 用goroutine和通道實現並發 341
7.4.1 goroutine簡介 341
7.4.2 通道 343
7.5 用sync包實現並發 351
7.5.1 競態 351
7.5.2 互斥鎖 352
7.5.3 讀寫互斥鎖 354
7.5.4 sync.Once結構體 358
7.5.5 同步等待組sync.WaitGroup 361
7.5.6 競態檢測器 364
7.6 用Go開發並發的Web套用 366
7.6.1 【實戰】開發一個自增整數生成器 366
7.6.2 【實戰】開發一個並發的訊息傳送器 366
7.6.3 【實戰】開發一個多路複合計算器 367
7.6.4 【實戰】用select關鍵字創建多通道監聽器 368
7.6.5 【實戰】用無緩衝通道阻塞主線 370
7.6.6 【實戰】用篩法求素數 371
7.6.7 【實戰】創建隨機數生成器 372
7.6.8 【實戰】創建一個定時器 373
7.6.9 【實戰】開發一個並發的Web爬蟲 374
7.7 小結 377
第8章 Go RESTful API接口開發 378
8.1 什麼是RESTful API 378
8.2 Go流行Web框架的使用 382
8.2.1 為什麼要用框架 382
8.2.2 Gin框架的使用 382
8.2.3 Beego框架的使用 395
8.3 【實戰】用Gin框架開發RESTful API 412
8.3.1 路由設計 412
8.3.2 數據表設計 412
8.3.3 模型代碼編寫 412
8.3.4 邏輯代碼編寫 413
8.4 【實戰】用Go開發OAuth 2.0接口 417
8.4.1 OAuth 2.0簡介 417
8.4.2 用Go開發OAuth 2.0接口的示例 418
8.5 小結 423
第4篇 Go Web項目實戰
第9章 【實戰】開發一個B2C電子商務系統 426
9.1 需求分析 426
9.2 系統設計 427
9.2.1 確定系統架構 427
9.2.2 制定系統流程 428
9.3 設計軟體架構 429
9.4 設計資料庫與數據表 430
9.5 搭建系統基礎架構 431
9.6 前台模組開發 441
9.6.1 首頁模組開發 443
9.6.2 註冊登錄模組開發 450
9.6.3 用戶中心模組開發 463
9.6.4 商品展示模組開發 469
9.6.5 購物車模組開發 474
9.6.6 收銀台模組開發 481
9.6.7 支付模組開發 489
9.7 後台模組開發 493
9.7.1 登錄模組開發 493
9.7.2 商品模組開發 495
9.8 小結 499
第10章 用Docker部署Go Web套用 500
10.1 了解Docker組件及原理 500
10.1.1 什麼是Docker 500
10.1.2 為什麼用Docker 502
10.1.3 Docker引擎 502
10.1.4 Docker構架 503
10.1.5 Docker核心概念 503
10.1.6 Docker常用命令 504
10.2 安裝Docker 509
10.2.1 Linux Docker 安裝 509
10.2.2 Windows Docker 安裝 510
10.2.3 Mac OS X Docker 安裝 511
10.3 【實戰】用Docker運行一個Go Web 應用程式 512
10.3.1 為什麼使用Docker運行Go Web應用程式 512
10.3.2 創建Go Web應用程式 512
10.3.3 用Docker運行一個Go Web應用程式 513
10.4 【實戰】通過Docker-Compose快速部署 515
10.4.1 Docker-Compose 簡介 515
10.4.2 通過Docker-Compose實戰部署 516
10.5 【實戰】將Docker容器推送至伺服器 520
10.5.1 到Docker Hub官網註冊賬號 520
10.5.2 同步本地和Docker hub的標籤(tag) 520
10.5.3 推送鏡像到Docker Hub 521
10.5.4 訪問Docker Hub鏡像 521
10.5.5 使用發布的Docker Hub鏡像 522
10.6 小結 523

作者簡介

廖顯東,男,技術作家,高級軟體架構師,全棧開發者,技術極客,Gopher,開源愛好者。畢業於河海大學,先後就職於蘇寧易購等多家大型公司。多年軟體開發與團隊管理經驗,精通JavaJavaScript、C/C++/C#、Python、PHP等開發語言。對Go語言、Rust語言等流行開發語言有深入實踐和研究。對大型電子商務系統開發、高並發架構、分散式架構、微服務、大數據、人工智慧算法等領域有深入實踐和研究。

相關詞條

熱門詞條

聯絡我們