第一部分 Go語(yǔ)言的世界
第1章 初識Go語(yǔ)言
1.1Go語(yǔ)言特性一瞥
1.2Go語(yǔ)言的優(yōu)劣
1.3怎樣學(xué)習Go語(yǔ)言
1.4本章小結
第2章 Go語(yǔ)言環(huán)境搭建
2.1安裝和設置
2.1.1Linux
2.1.2Windows
2.2工程結構
2.2.1工作區
2.2.2GOPATH
2.2.3源碼文件
2.2.4代碼包
2.3標準命令概述
2.4本章小結
第二部分 編程基礎
第3章 詞法與數據類(lèi)型
3.1基本詞法
3.1.1標識符
3.1.2關(guān)鍵字
3.1.3字面量
3.1.4類(lèi)型
3.1.5操作符
3.1.6表達式
3.2數據類(lèi)型
3.2.1基本數據類(lèi)型
3.2.2數組
3.2.3切片
3.2.4字典
3.2.5函數和方法
3.2.6接口
3.2.7結構體
3.2.8指針
3.2.9數據初始化
3.3數據的使用
3.3.1賦值語(yǔ)句
3.3.2常量與變量
3.3.3可比性與有序性
3.3.4類(lèi)型轉換
3.3.5內建函數
3.4本章小結
第4章 流程控制方法
4.1基本流程控制
4.1.1代碼塊和作用域
4.1.2if語(yǔ)句
4.1.3switch語(yǔ)句
4.1.4for語(yǔ)句
4.1.5goto語(yǔ)句
4.2defer語(yǔ)句
4.3異常處理
4.3.1error
4.3.2panic和recover
4.4實(shí)戰演練--Set
4.5實(shí)戰演練--OrderedMap
4.6本章小結
第5章 程序測試和文檔
5.1程序測試
5.1.1功能測試
5.1.2基準測試
5.1.3樣本測試
5.1.4測試運行記錄
5.1.5測試覆蓋率
5.2程序文檔
5.3本章小結
第三部分 并發(fā)編程
第6章 并發(fā)編程綜述
6.1并發(fā)編程基礎
6.1.1串行程序與并發(fā)程序
6.1.2并發(fā)程序與并行程序
6.1.3并發(fā)程序與并發(fā)系統
6.1.4并發(fā)程序的不確定性
6.1.5并發(fā)程序內部的交互
6.2多進(jìn)程編程
6.2.1進(jìn)程
6.2.2關(guān)于同步
6.2.3管道
6.2.4信號
6.2.5Socket
6.3多線(xiàn)程編程
6.3.1線(xiàn)程
6.3.2線(xiàn)程的同步
6.4多線(xiàn)程與多進(jìn)程
6.5多核時(shí)代的并發(fā)編程
6.6Go語(yǔ)言的并發(fā)編程
6.6.1線(xiàn)程實(shí)現模型
6.6.2調度器
6.6.3更多的細節
6.7本章小結
第7章 Goroutine和Channel
7.1Goroutine的使用
7.1.1go語(yǔ)句與Goroutine
7.1.2Goroutine的運作過(guò)程
7.1.3runtime包與Goroutine
7.1.4HappensBefore
7.2Channel
7.2.1Channel是什么
7.2.2單向Channel
7.2.3for語(yǔ)句與Channel
7.2.4select語(yǔ)句
7.2.5非緩沖的Channel
7.2.6time包與Channel
7.3實(shí)戰演練--載荷發(fā)生器
7.3.1參數和結果
7.3.2基本結構
7.3.3初始化
7.3.4啟動(dòng)和停止
7.3.5調用器和功能測試
7.4本章小結
第8章 同步
8.1鎖的使用
8.2條件變量
8.3原子操作
8.4只會(huì )執行一次
8.5WaitGroup
8.6臨時(shí)對象池
8.7實(shí)戰演練--ConcurrentMap
8.8本章小結
第四部分 編程實(shí)戰
第9章 一個(gè)網(wǎng)絡(luò )爬蟲(chóng)框架的設計和實(shí)現
9.1網(wǎng)絡(luò )爬蟲(chóng)與框架
9.2功能需求和分析
9.3總體設計
9.4詳細設計
9.4.1基本數據結構
9.4.2接口的設計
9.5中間件的實(shí)現
9.5.1通道管理器
9.5.2實(shí)體池
9.5.3停止信號
9.5.4ID生成器
9.6處理模塊的實(shí)現
9.6.1網(wǎng)頁(yè)下載器
9.6.2分析器
9.6.3條目處理管道
9.7調度器的實(shí)現
9.7.1基本結構
9.7.2主要的函數和方法
9.7.3請求緩存
9.7.4摘要信息的類(lèi)型
9.8一個(gè)使用演示
9.8.1再看調度器參數
9.8.2開(kāi)啟調度器
9.8.3調度器監控函數
9.9當前的不足和解決思路
9.10本章小結
附錄Go語(yǔ)言的學(xué)習資源