《Go程序開發(fā)實戰(zhàn)寶典》結(jié)合典型案例進(jìn)行知識點講解,內(nèi)容通俗易懂、重點突出、實用性強,囊括Go語言的主要功能。全書共14章,前6章主要包括基礎(chǔ)數(shù)據(jù)類型、循環(huán)控制、函數(shù)和指針、內(nèi)置容器、字符串處理等;第7章主要講解Go語言的面向?qū)ο缶幊,主要包括結(jié)構(gòu)體、方法、接口、設(shè)計模式、反射等內(nèi)容;第8~13章主要介紹服務(wù)端開發(fā)經(jīng)常需要處理的問題,主要包括Go語言的編寫規(guī)范、錯誤處理、異常處理、文件讀寫操作、JSON編碼解碼、網(wǎng)絡(luò)編程、gRPC、并發(fā)編程、數(shù)據(jù)庫編程、網(wǎng)絡(luò)安全和測試等內(nèi)容。此外,本書還對一些數(shù)據(jù)類型的底層結(jié)構(gòu)、并發(fā)機制、垃圾回收進(jìn)行了深入的講解,*后一章通過對Gin框架的介紹和使用,完成了一個基礎(chǔ)的分布式網(wǎng)盤項目。
《Go程序開發(fā)實戰(zhàn)寶典》附贈了相關(guān)知識點的視頻講解及案例源代碼,讀者可自行下載(詳細(xì)方法見本書封底)。
《Go程序開發(fā)實戰(zhàn)寶典》適合所有對Go語言感興趣的開發(fā)人員閱讀,即使沒有Go語言基礎(chǔ)也可以直接上手使用,同時也可作為計算機相關(guān)專業(yè)師生的參考用書。
按知識點分類的視頻列表
前言
第1章 初識Go語言
1.1 Go語言簡介
1.1.1 Go語言的三位主要作者
1.1.2 關(guān)于名字
1.1.3 吉祥物
1.1.4 特點與優(yōu)勢
1.1.5 著名項目
1.2 開發(fā)環(huán)境搭建
1.2.1 Linux環(huán)境
1.2.2 Windows環(huán)境
1.3 集成開發(fā)環(huán)境GoLand
1.3.1 下載及安裝
1.3.2 創(chuàng)建項目
1.3.3 編寫第一個程序
1.4 Go語言程序結(jié)構(gòu)
1.4.1 標(biāo)識符
1.4.2 關(guān)鍵字
1.4.3 字面量
1.4.4 注釋
1.4.5 分隔符
1.4.6 可見性規(guī)則
1.5 本章小結(jié)
1.6 習(xí)題
第2章 數(shù)據(jù)類型與運算符
2.1 變量
2.1.1 變量的概念
2.1.2 變量聲明與賦值
2.1.3 變量多重賦值
2.1.4 匿名變量
2.2 數(shù)據(jù)類型
2.2.1 整型
2.2.2 浮點型
2.2.3 復(fù)數(shù)
2.2.4 布爾型
2.2.5 字符串
2.2.6 字符
2.2.7 類型轉(zhuǎn)換
2.2.8 類型別名
2.3 常量
2.3.1 聲明方式
2.3.2 枚舉
2.3.3 iota
2.4 運算符
2.4.1 算術(shù)運算符
2.4.2 關(guān)系運算符
2.4.3 邏輯運算符
2.4.4 位運算符
2.4.5 賦值運算符
2.4.6 其他運算符
2.4.7 運算符優(yōu)先級
2.5 本章小結(jié)
2.6 習(xí)題
第3章 流程控制
3.1 條件判斷語句
3.1.1 語法結(jié)構(gòu)
3.1.2 if語句
3.1.3 if else語句
3.1.4 else if語句
3.1.5 if嵌套語句
3.2 switch語句
3.2.1 語法結(jié)構(gòu)
3.2.2 type switch
3.2.3 switch初始化
3.2.4 fallthrough
3.3 循環(huán)語句
3.3.1 語法結(jié)構(gòu)
3.3.2 嵌套循環(huán)
3.3.3 range子語句
3.4 循環(huán)控制語句
3.4.1 break語句
3.4.2 continue語句
3.4.3 goto語句和標(biāo)簽
3.5 本章小結(jié)
3.6 習(xí)題
第4章 函數(shù)與指針
4.1 函數(shù)
4.1.1 函數(shù)聲明
4.1.2 作用域
4.1.3 函數(shù)變量
4.1.4 閉包與匿名函數(shù)
4.1.5 可變參數(shù)
4.1.6 遞歸函數(shù)
4.2 指針
4.2.1 指針的本質(zhì)
4.2.2 基本操作
4.2.3 new函數(shù)
4.2.4 nil指針
4.2.5 指針的指針
4.3 函數(shù)的參數(shù)傳遞
4.3.1 形參和實參
4.3.2 值傳遞
4.3.3 引用傳遞
4.3.4 值類型和引用類型
4.4 本章小結(jié)
4.5 習(xí)題
第5章 復(fù)合數(shù)據(jù)類型
5.1 數(shù)組
5.1.1 理解數(shù)組
5.1.2 聲明和初始化
5.1.3 訪問和修改
5.1.4 遍歷數(shù)組
5.1.5 多維數(shù)組
5.1.6 函數(shù)間傳遞數(shù)組
5.1.7 數(shù)組指針與指針數(shù)組
5.2 切片
5.2.1 理解切片
5.2.2 聲明和初始化
5.2.3 修改和截取
5.2.4 增長和復(fù)制
5.2.5 刪除切片元素
5.2.6 快速排序
5.3 map
5.3.1 理解map
5.3.2 創(chuàng)建map
5.3.3 刪除元素
5.3.4 函數(shù)間傳遞map
5.4 本章小結(jié)
5.5 習(xí)題
第6章 字符串
6.1 基本操作
6.1.1 字符串底層結(jié)構(gòu)
6.1.2 UTF-8編碼
6.1.3 常用操作
6.1.4 遍歷字符串
6.2 處理方法
6.2.1 檢索字符串
6.2.2 分隔字符串
6.2.3 大小寫轉(zhuǎn)換
6.2.4 修剪字符串
6.2.5 比較字符串
6.2.6 連接和替換
6.3 類型轉(zhuǎn)換
6.3.1 字符串轉(zhuǎn)其他類型
6.3.2 其他類型轉(zhuǎn)字符串
6.4 正則表達(dá)式
6.4.1 基本規(guī)則
6.4.2 使用regexp包
6.5 本章小結(jié)
6.6 習(xí)題
第7章 面向?qū)ο缶幊?br> 7.1 結(jié)構(gòu)體
7.1.1 結(jié)構(gòu)體定義
7.1.2 實例化
7.1.3 函數(shù)間傳遞結(jié)構(gòu)體
7.1.4 匿名結(jié)構(gòu)體
7.1.5 匿名成員
7.1.6 結(jié)構(gòu)體嵌入
7.2 方法
7.2.1 為類型添加方法
7.2.2 方法與函數(shù)的區(qū)別
7.2.3 值語義和引用語義
7.2.4 方法繼承和重寫
7.3 接口
7.3.1 Duck Typing
7.3.2 接口的使用
7.3.3 接口賦值
7.3.4 接口查詢
7.3.5 多態(tài)
7.3.6 空接口
7.3.7 類型斷言
7.4 設(shè)計模式
7.4.1 開閉原則
7.4.2 依賴倒置原則
7.4.3 單例模式
7.4.4 工廠方法模式
7.4.5 抽象工廠模式
7.4.6 外觀模式
7.4.7 觀察者模式
7.5 反射
7.5.1 Go語言的反射
7.5.2 反射法則
7.5.3 反射變量的類型和值
7.5.4 創(chuàng)建新實例
7.5.5 創(chuàng)建引用類型的實例
7.5.6 創(chuàng)建函數(shù)
7.6 本章小結(jié)
7.7 習(xí)題
第8章 編寫規(guī)范和錯誤處理
8.1 編寫規(guī)范
8.1.1 代碼風(fēng)格
8.1.2 注釋
8.1.3 命名
8.2 錯誤處理
8.2.1 error接口
8.2.2 處理error的方式
8.2.3 自定義錯誤
8.2.4 引入包
8.3 defer
8.3.1 執(zhí)行順序
8.3.2 值傳遞
8.4 異常處理
8.4.1 panic
8.4.2 recover
8.4.3 實現(xiàn)原理//可以刪除
8.5 內(nèi)存管理
8.5.1 內(nèi)存分區(qū)
8.5.2 Go Runtime內(nèi)存分配
8.5.3 逃逸分析
8.5.4 語法糖
8.5.5 垃圾回收
8.5.6 臨時實例池
8.6 本章小結(jié)
8.7 習(xí)題
第9章 文件讀寫操作
9.1 文件信息
9.1.1 文件概述
9.1.2 FileInfo接口
9.2 文件常規(guī)操作
9.2.1 創(chuàng)建目錄
9.2.2 創(chuàng)建文件
9.2.3 打開和關(guān)閉文件
9.2.4 刪除文件
9.3 讀寫文件
9.3.1 寫入文件
9.3.2 讀取文件
9.3.3 拷貝文件
9.4 緩沖區(qū)
9.4.1 緩沖區(qū)原理
9.4.2 bufio.Reader
9.4.3 bufio.Writer
9.4.4 Scanner類型和方法
9.5 JSON
9.5.1 語法規(guī)則
9.5.2 編碼和解碼
9.5.3 JSON與map的轉(zhuǎn)換
9.5.4 JSON與結(jié)構(gòu)體的轉(zhuǎn)換
9.5.5 結(jié)構(gòu)體字段標(biāo)簽
9.5.6 匿名字段
9.6 本章小結(jié)
9.7 習(xí)題
第10章 網(wǎng)絡(luò)編程
10.1 套接字
10.1.1 實現(xiàn)步驟
10.1.2 TCP套接字
10.1.3 UDP套接字
10.2 Web編程
10.2.1 理解路由
10.2.2 交互流程
10.2.3 Web服務(wù)器
10.2.4 客戶端
10.3 模板
10.3.1 變量
10.3.2 邏輯判斷
10.3.3 遍歷
10.3.4 嵌套
10.4 RPC應(yīng)用
10.4.1 內(nèi)置RPC
10.4.2 Protobuf
10.4.3 gRPC
10.4.4 自簽證書
10.4.5 攔截器和認(rèn)證
10.4.6 添加HTTP接口
10.5 本章小結(jié)
10.6 習(xí)題
第11章 并發(fā)編程
11.1 并發(fā)基礎(chǔ)
11.1.1 并發(fā)與并行
11.1.2 進(jìn)程和線程
11.1.3 協(xié)程
11.2 Goroutine
11.2.1 Goroutine原理
11.2. 2GPM模型
11.2.3 Goroutine的使用
11.2.4 閉包與Goroutine
11.2.5 調(diào)度Goroutine
11.3 Channel
11.3.1 Channel基礎(chǔ)
11.3.2 無緩沖Channel
11.3.3 阻塞
11.3.4 有緩沖Channel
11.3.5 生產(chǎn)者消費者模型
11.3.6 單向Channel
11.3.7 定時器
11.3.8 select分支語句
11.4 同步操作
11.4.1 同步等待組
11.4.2 競爭狀態(tài)
11.4.3 互斥鎖
11.4.4 讀寫互斥鎖
11.4.5 條件變量
11.5Context
11.5.1Context的作用
11.5.2Context接口
11.5.3超時取消
11.5.4傳值
11.6 MapReduce
11.6.1 編程模型原理
11.6.2 編程實驗
11.6.3 實現(xiàn)方案
11.7 本章小結(jié)
11.8 習(xí)題
第12章 數(shù)據(jù)庫編程
12.1 數(shù)據(jù)庫簡介
12.1.1 關(guān)系型數(shù)據(jù)庫
12.1.2 非關(guān)系型數(shù)據(jù)庫
12.2 操作MySQL
12.2.1 安裝MySQL驅(qū)動
12.2.2 連接數(shù)據(jù)庫
12.2.3 CRUD操作
12.2.4 預(yù)編譯語句
12.2.5 事務(wù)處理
12.3 對象關(guān)系映射
12.3.1 XORM框架
12.3.2 數(shù)據(jù)庫配置
12.3.3 結(jié)構(gòu)體映射
12.3.4 表基本操作
12.3.5 CRUD操作
12.4 Redis
12.4.1 數(shù)據(jù)類型
12.4.2 讀寫操作
12.4.3 連接池
12.5 本章小結(jié)
12.6 習(xí)題
第13章 安全與測試
13.1 信息安全
13.1.1 Hash算法
13.1.2 Base64
13.1.3 對稱加密
13.1.4 非對稱加密
13.1.5 數(shù)字簽名
13.2 測試
13.2.1 單元測試
13.2.2 基準(zhǔn)測試
13.2.3 Mock依賴
13.3 本章小結(jié)
13.4 習(xí)題
第14章 項目實戰(zhàn)
14.1 Gin框架
14.1.1 Gin框架特點
14.1.2 請求參數(shù)獲取
14.1.3 數(shù)據(jù)綁定和驗證
14.1.4 輸出響應(yīng)
14.1.5 路由設(shè)置
14.1.6 中間件
14.2 分布式網(wǎng)盤項目
14.2.1 項目架構(gòu)
14.2.2 MVC設(shè)計模式
14.2.3 數(shù)據(jù)庫
14.2.4 路由設(shè)置
14.2.5 基礎(chǔ)配置
14.2.6 工具設(shè)置
14.3 分布式文件系統(tǒng)
14.3.1 FastDFS簡介
14.3.2 FastDFS工作原理
14.3.3 安裝和配置FastDFS
14.3.4 配置Nginx模塊
14.4 用戶模塊開發(fā)
14.4.1 用戶注冊
14.4.2 登錄功能
14.4.3 首頁設(shè)計
14.5 文件模塊開發(fā)
14.5.1 上傳和下載
14.5.2 秒傳原理
14.5.3 文件信息展示
14.6 本章小結(jié)