Go語言實戰 (GO in Action) Go语言实战

威廉·肯尼迪 (William Kennedy), 布賴恩·克特森 (Brian Ketelsen), 埃里克·聖馬丁 (Erik St.Martin)

立即出貨

買這商品的人也買了...

相關主題

商品描述

Go語言結合了底層系統語言的能力以及現代語言的高級特性,旨在降低構建簡單、可靠、高效軟件的門檻。本書向讀者提供一個專註、全面且符合語言習慣的視角。Go語言實戰同時關註語言的規範和實現,涉及的內容包括語法、類型系統、並發、管道、測試,以及其他一些主題。

作者簡介

William Kennedy,是一位熟練的軟件開發者,也是博客GoingGo.Net的作者。

Brian Ketelsen和Erik St. Martin是全球Go語言大會GopherCon的組織者,也是Go語言框架Skynet的聯合作者。
 

目錄大綱

第1章關於Go語言的介紹1 
1.1用Go解決現代編程難題2 
1.1.1開發速度2 
1.1.2並發3 
1.1.3 Go語言的類型系統5 
1.1.4內存管理7 
1.2你好,Go 7 
1.3小結8 

第2章快速開始一個Go程序9 
2.1程序架構9 
2.2 main包11 
2.3 search包13 
2.3.1 search.go 13 
2.3.2 feed.go 21 
2.3.3 match.go default.go 24 
2.4 RSS匹配器30 
2.5小結36 

第3章打包和工具鏈37 
3.1包37 
3.1.1包名慣例38 
3.1.2 main包38 
3.2導入39 
3 .2.1遠程導入40 
3.2.2命名導入40
3.3函數init 41 
3.4使用Go的工具42 
3.5進一步介紹Go開發工具44 
3.5.1 go vet 44 
3.5.2 Go代碼格式化45 
3.5.3 Go語言的文檔45 
3.6與其他Go開發者合作48 
3.7依賴管理48 
3.7.1第三方依賴49 
3.7.2對gb的介紹50 
3.8小結52 

第4章數組、切片和映射53 
4.1數組的內部實現和基礎功能53 
4.1.1內部實現53 
4.1.2聲明和初始化54 
4.1.3使用數組55 
4.1.4多維數組58 
4.1.5在函數間傳遞數組59 
4.2切片的內部實現和基礎功能60 
4.2.1內部實現60 
4.2.2創建和初始化61 
4.2.3使用切片63 
4.2.4多維切片74
4.2.5在函數間傳遞切片75 
4.3映射的內部實現和基礎功能76 
4.3.1內部實現76 
4.3.2創建和初始化78 
4.3.3使用映射79 
4.3 .4在函數間傳遞映射81 
4.4小結82 

第5章Go語言的類型系統83 
5.1用戶定義的類型83 
5.2方法87 
5.3類型的本質90 
5.3.1內置類型91 
5.3.2引用類型91 
5.3.3結構類型93 
5.4接口95 
5.4.1標準庫96 
5.4.2實現98 
5.4.3方法集99 
5.4.4多態103 
5.5嵌入類型105 
5.6公開或未公開的標識符113 
5.7小結121 

第6章並發122 
6.1並發與並行122
6.2 goroutine 125 
6.3競爭狀態132 
6.4鎖住共享資源135 
6.4.1原子函數135 
6.4.2互斥鎖138 
6.5通道140 
6.5.1無緩衝的通道141 
6.5.2有緩衝的通道146 
6.6小結149 

第7章並發模式150 
7.1 runner 150 
7.2 pool 158 
7.3 work 168 
7.4小結174 

第8章標準庫176 
8. 1文檔與源代碼177 
8.2記錄日誌178 
8.2.1 log包179 
8.2.2定制的日誌記錄器182 
8.2.3結論186 
8.3編碼解碼187 
8.3.1解碼JSON 187 
8.3.2編碼JSON 192 
8.3.3結論193
8.4輸入和輸出193 
8.4.1 Writer和Reader接口194 
8.4.2整合併完成工作195 
8.4.3簡單的curl 199 
8.4.4結論200 
8.5小結200 

第9章測試和性能201 
9.1單元測試201 
9.1.1基礎單元測試202 
9.1.2表組測試205 
9.1.3模仿調用208 
9.1.4測試服務端點212 
9.2示例217 
9.3基準測試220 
9.4小結224