《Go語言學習筆記》是2016年7月電子工業出版社出版的圖書,作者是雨痕。
基本介紹
- 書名:Go語言學習筆記
- 作者:雨痕
- ISBN:978-7-121-29160-9
- 頁數:468 頁
- 定價:89.00元
- 出版社:電子工業出版社
- 出版時間:2016年7月
內容簡介,編輯推薦,內容提要,圖書目錄,前言,
內容簡介
《Go語言學習筆記》經四年多逐步完善,內容覆蓋了語言、運行時、性能最佳化、工具鏈等各層面知識。且內容經大量讀者反饋和校對,沒有明顯的缺陷和錯誤。上卷細緻解析了語言規範相關細節,便於讀者深入理解語言相關功能的使用方法和注意事項。下卷則對運行時源碼做出深度剖析,引導讀者透徹了解語言功能背後的支持環境和運行體系,諸如記憶體分配、垃圾回收和並發調度等。
編輯推薦
傳說中的雨痕老師終於將自己的《Go學習筆記》付梓了!
一如既往的低調,也一如既往的務實。本書文風極簡,乾淨利落。
上卷(基於Go 1.6)細緻解析語言規範相關細節,下卷(基於Go 1.5.1)則對運行時源碼做出深度剖析。
內容提要
作為時下流行的一種系統程式語言,Go 簡單易學,性能很好,且支持各類主流平台。已有大量項目採用 Go 編寫,這其中就包括 Docker 等明星作品,其開發和執行效率早已被證明。
《Go語言學習筆記》經四年多逐步完善,內容覆蓋了語言、運行時、性能最佳化、工具鏈等各層面知識。且內容經大量讀者反饋和校對,沒有明顯的缺陷和錯誤。上卷細緻解析了語言規範相關細節,便於讀者深入理解語言相關功能的使用方法和注意事項。下卷則對運行時源碼做出深度剖析,引導讀者透徹了解語言功能背後的支持環境和運行體系,諸如記憶體分配、垃圾回收和並發調度等。
《Go語言學習筆記》不適合編程初學者入門,可供有實際編程經驗或正在使用Go 工作的人群參考。
圖書目錄
上卷 語言詳解
第1 章 概述 . 3
1.1 特徵 . 3
1.2 簡介 . 6
第2 章 類型 . 18
2.1 變數 . 18
2.2 命名 . 22
2.3 常量 . 24
2.4 基本類型 . 28
2.5 引用類型 . 31
2.6 類型轉換 . 33
2.7 自定義類型 . 34
第3 章 表達式 38
3.1 保留字 . 38
3.2 運算符 . 38
3.3 初始化 . 44
3.4 流控制 . 45
第4 章 函式 . 59
4.1 定義 . 59
4.2 參數 . 63
4.3 返回值 . 67
4.4 匿名函式 . 69
4.5 延遲調用 . 76
4.6 錯誤處理 . 80
第5 章 數據 . 86
5.1 字元串 . 86
5.2 數組 . 95
5.3 切片 . 100
5.4 字典 . 110
5.5 結構 . 118
第6 章 方法 . 130
6.1 定義 . 130
6.2 匿名欄位 . 133
6.3 方法集 . 134
6.4 表達式 . 136
第7 章 接口 . 141
7.1 定義 . 141
7.2 執行機制 . 145
7.3 類型轉換 . 150
7.4 技巧 . 151
第8 章 並發 . 153
8.1 並發的含義 . 153
8.2 通道 . 163
8.3 同步 . 183
第9 章 包結構 187
9.1 工作空間 . 187
9.2 導入包 . 188
9.3 組織結構 . 192
9.4 依賴管理 . 197
第10 章 反射 . 200
10.1 類型 . 200
10.2 值 . 207
10.3 方法 . 210
10.4 構建 . 212
10.5 性能 . 213
第11 章 測試 . 216
11.1 單元測試 . 216
11.2 性能測試 . 221
11.3 代碼覆蓋率 . 224
11.4 性能監控 . 226
第12 章 工具鏈 229
12.1 安裝 . 229
12.2 工具 . 231
12.3 編譯 . 234
下卷 源碼剖析
第13 章 準備 . 243
第14 章 引導 . 244
第15 章 初始化 247
第16 章 記憶體分配 255
16.1 概述 . 255
16.2 初始化 . 259
16.3 分配 . 265
16.4 回收 . 279
16.5 釋放 . 283
16.6 其他 . 285
第17 章 垃圾回收 291
17.1 概述 . 291
17.2 初始化 . 293
17.3 啟動 . 294
17.4 標記 . 300
17.5 清理 . 311
17.6 監控 . 314
17.7 其他 . 317
第18 章 並發調度 326
18.1 概述 . 326
18.2 初始化 . 327
18.3 任務 . 332
18.4 執行緒 . 344
18.5 執行 . 353
18.6 連續棧 . 370
18.7 系統調用 . 385
18.8 監控 . 390
18.9 其他 . 396
第19 章 通道 . 407
19.1 創建 . 407
19.2 收發 . 408
19.3 選擇 . 418
第20 章 延遲 . 427
20.1 定義 . 427
20.2 性能 . 433
20.3 錯誤 . 434
第21 章 析構 . 438
21.1 設定 . 438
21.2 清理 . 443
21.3 執行 . 445
第22 章 快取池 450
22.1 初始化 . 450
22.2 操作 . 453
22.3 清理 . 455
前言
前兩天忙裡偷閒將第五版《Go 學習筆記》上下冊合併,預備交給出版社編輯。不經意掃了一眼更新記錄,才發覺四年光陰恍然而過。不知從何時起,歲月流逝的速度越來越快,抓不得,留不住。
我很擅長堅持,不知是因為笨,還是性情遲鈍的緣故。在給編輯寫作者簡介時,我努力回憶自己最近二十年的經歷,好像除了些紛擾的人和事外,就是一段段在不同技術圈子裡日夜探索的記憶,歷久彌新。
現在帶了些學生,每每交流時,總偷偷慶幸自己是個先行者,沒有網際網路的“黑暗時代”反而造就了踏實的基礎,遠不是現今亂花迷眼的境況。看著他們對於具體實現“懵懂無知”的表現,我對於寫書這事就愈發虔誠,生怕誤了別人的光陰和熱情。似乎《學習筆記》這個名字才是最好的詮釋,立不得案頭,權作閒書,稍能觀感一二即可。
因喜愛 C,故對 Go 關注得很早。觀望良久,終究受不住誘惑,一頭栽了進去。邊學邊記,於是有了最早的《學習筆記》。只因錯漏過多,發到某論壇著實沒砸出什麼水花來。此後,對於宣傳也淡了心思,再不願出去,只自己默默更新,或發到微博,給一些熟識尚惦記這事的人打個招呼。
某日,一編輯發來訊息,詢問我是否出版,才恍然知道這書原也是可印的,好像自己從沒想過。猶豫再三,且將幾本筆記從 GitHub 下架。只可惜,因某些理念不同,最終未能如願,這一拖就是許多時日。
去年受老謝的邀請,前往上海參加 Gopher China 大會。期間多次被問及何時能有實體書出版,熄了許久的心思方又活過來。年中,重新寫了書稿,年底幾乎又重來一遍,心底對於出書總有些忐忑。直到聖誕節,才放了下冊出來。幸好,並沒有人出來指責我粗製濫造,方得心安。
我兒小乖還太小,於是猴年我一人回老家過年。也許是在外面太久,對搬進城裡的老家全然陌生,每日裡除了陪父母吃飯外,其他時間都用來寫上冊書稿。偶爾透過窗看見遠處的山影,才找回些幼時記憶。書寫得意外順利,即便網路不算通暢也未能影響到我。回京路上,我徹底定了主意,準備交付出版。
節後忙於培訓一事,書稿校對稍稍拖後了些。邊按章節調整,邊請群里的夥伴們幫忙審校,所幸趕在截止日期前完成。樣稿交到編輯手裡,雖尚有些收尾工作,但總算能放輕鬆些。這於我是個解脫,困於此的心思總算少了一大半。
依慣例,需在此感謝很多人。其中自然少不了對我多加鼓勵的家中太上領導和惦記良久的網路眾位大仙們。當然,最需感謝的是群里幫忙校對的小夥伴們,有溺水的魚、大內總管、starchou、老虎、日下、小E、春嬸、奮鬥娃等等。
讀者定位
本書並不適合用作編程初學者入門,因內容和文體都太過簡練了些。我厚臉推薦給有實際經驗或正用 Go 工作的人群,可於路途中當閒書翻看幾頁。