定 價(jià):69 元
叢書(shū)名:信息科學(xué)與技術(shù)叢書(shū)
- 作者:李曉鈞
- 出版時(shí)間:2019/8/1
- ISBN:9787111630722
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP312GO
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
Go語(yǔ)言適合用來(lái)進(jìn)行服務(wù)器編程與網(wǎng)絡(luò)編程,包括Web應(yīng)用編程等。本書(shū)詳細(xì)講解了Go語(yǔ)言數(shù)據(jù)類(lèi)型、關(guān)鍵字、字面量、基本語(yǔ)法等基礎(chǔ)概念及Go項(xiàng)目的工程構(gòu)建、測(cè)試、編譯與運(yùn)行等;深入講解了協(xié)程(goroutine)和通道(channel)等與并發(fā)編程有關(guān)的概念;還介紹了系統(tǒng)標(biāo)準(zhǔn)庫(kù)、網(wǎng)絡(luò)編程和第三方包。讀者掌握本書(shū)內(nèi)容后,可以順利進(jìn)行實(shí)際項(xiàng)目開(kāi)發(fā)。
本書(shū)適合Go語(yǔ)言初學(xué)者和有一定經(jīng)驗(yàn)的程序員閱讀。
書(shū)中代碼可免費(fèi)下載(掃描封底二維碼)。
現(xiàn)在市面上與Go語(yǔ)言相關(guān)的書(shū)籍較少,大部分書(shū)籍針對(duì)的是中高級(jí)開(kāi)發(fā)人員,而從基礎(chǔ)知識(shí)講解,進(jìn)而到初步應(yīng)用開(kāi)發(fā)的指導(dǎo)性書(shū)籍更少。
針對(duì)以上情況,本書(shū)詳細(xì)講解了Go語(yǔ)言基礎(chǔ)知識(shí)點(diǎn),并聯(lián)系實(shí)際指出其可能存在的陷阱,幫助讀者加深學(xué)習(xí)時(shí)的理解。本書(shū)還結(jié)合流行度較高的開(kāi)源第三方包,引導(dǎo)讀者進(jìn)行更高級(jí)的實(shí)際項(xiàng)目開(kāi)發(fā)。
本書(shū)非常適合Go語(yǔ)言新手細(xì)細(xì)閱讀。有一定經(jīng)驗(yàn)的開(kāi)發(fā)人員,也可以根據(jù)自己的情況,選擇一些章節(jié)來(lái)看。
第 1~4章為基礎(chǔ)部分,主要講解Go語(yǔ)言的基礎(chǔ)知識(shí),包括Go語(yǔ)言的安裝、基本語(yǔ)法、標(biāo)識(shí)符、關(guān)鍵字、運(yùn)算符、標(biāo)點(diǎn)符號(hào)、字面量等,以及Go項(xiàng)目的工程構(gòu)建、編譯與運(yùn)行等。
第 5~8 章為中級(jí)部分,主要講解Go語(yǔ)言的復(fù)合數(shù)據(jù)類(lèi)型,包括數(shù)組(array)、切片(slice)、字典(map)、結(jié)構(gòu)體(struct)、指針(pointer)、函數(shù)(function)、接口(interface)和通道(channel)類(lèi)型等。利用靈活的type關(guān)鍵字,可以自定義各種需要的數(shù)據(jù)類(lèi)型。函數(shù)提供了更直接的數(shù)據(jù)處理能力,而通過(guò)panic,recover,defer處理錯(cuò)誤的方式,也是Go語(yǔ)言的典型特征。
第9~13章為高級(jí)部分,主要講解結(jié)構(gòu)體、接口和方法,它們是Go語(yǔ)言簡(jiǎn)單與組合思維的基礎(chǔ)。非常友好地支持并發(fā)是Go語(yǔ)言天然具有的典型特征,協(xié)程(gorountine)和通道(channel)配合,加上sync 包提供的系列功能,使我們可以很方便地編寫(xiě)支持高并發(fā)的代碼。
第14~16章為拓展部分,主要介紹Go語(yǔ)言提供的官方標(biāo)準(zhǔn)庫(kù),包括OS操作、文件I/O、網(wǎng)絡(luò)傳輸處理、指針相關(guān)操作、代碼反射、日志記錄等。這些包可以讓我們快速進(jìn)入實(shí)際開(kāi)發(fā)。另外對(duì)MySQL數(shù)據(jù)庫(kù)以及LevelDB、BoltDB數(shù)據(jù)庫(kù)的操作有簡(jiǎn)單介紹。
第17、18章為應(yīng)用部分,主要以網(wǎng)絡(luò)爬蟲(chóng)和Web框架為例,進(jìn)入實(shí)際開(kāi)發(fā)。網(wǎng)絡(luò)爬蟲(chóng)是互聯(lián)網(wǎng)服務(wù)中比較重要的功能,通過(guò)互聯(lián)網(wǎng)抓取、分析、保存資料是程序員的一項(xiàng)基本能力,讀者可以看到Go語(yǔ)言在此方面也是游刃有余。而利用Gin這款輕量級(jí)的Web框架,可以很方便地搭建各種Web服務(wù)。
自2009年Go語(yǔ)言面世以來(lái),已經(jīng)有越來(lái)越多的公司轉(zhuǎn)向Go語(yǔ)言開(kāi)發(fā)。而Go語(yǔ)言以語(yǔ)法簡(jiǎn)單、學(xué)習(xí)門(mén)檻低、上手快著稱,但入門(mén)后很多人發(fā)現(xiàn)要寫(xiě)出地道的、遵循 Go語(yǔ)言思維的代碼卻實(shí)屬不易。
我作為Go語(yǔ)言的愛(ài)好者,在閱讀系統(tǒng)標(biāo)準(zhǔn)庫(kù)源代碼或其他知名開(kāi)源包源代碼時(shí),發(fā)現(xiàn)大牛對(duì)這門(mén)語(yǔ)言的了解之深入,代碼實(shí)現(xiàn)之巧妙優(yōu)美,除了膜拜還是膜拜。所以我建議你有時(shí)間多多閱讀這些代碼,網(wǎng)上說(shuō)Go大神的標(biāo)準(zhǔn)是“能理解簡(jiǎn)潔和可組合性哲學(xué)”。的確,Go語(yǔ)言追求代碼簡(jiǎn)潔到極致,而組合思想可謂借助于結(jié)構(gòu)體和接口而成為Go的靈魂。
function、method、interface、type等名詞是程序員們接觸比較多的關(guān)鍵字,但在Go語(yǔ)言中,你會(huì)發(fā)現(xiàn),它們有更強(qiáng)大、更靈活的用法。當(dāng)你徹底理解了Go語(yǔ)言相關(guān)基本概念,以及對(duì)其特點(diǎn)有了深入的認(rèn)知(當(dāng)然這也是這本書(shū)的目的),再假以時(shí)日多練習(xí)和實(shí)踐,我相信你很快就能真正掌握這門(mén)語(yǔ)言,成為一名出色的Gopher。
本書(shū)最早通過(guò)網(wǎng)絡(luò)發(fā)布,有不少關(guān)注Go語(yǔ)言的朋友通過(guò)各種途徑給了不少建議,這里要感謝網(wǎng)友Joyboo、林遠(yuǎn)鵬、Mr_RSI、magic-joker等。
本書(shū)最終得以出版,需要感謝李巖兄的鼓勵(lì)和幫助,以及其他各位朋友和老師們,感謝你們的鼓勵(lì)和幫助,感謝你們的支持!
最后,希望更多的人了解和使用Go語(yǔ)言,也希望閱讀本書(shū)的朋友們多多交流。雖然本書(shū)中的例子都經(jīng)過(guò)實(shí)際運(yùn)行,但難免會(huì)有錯(cuò)誤和不足之處,煩請(qǐng)您指出。書(shū)中其他疏漏之處也懇請(qǐng)各位讀者斧正。作者聯(lián)系郵箱:roteman@163.com。
祝各位Gopher工作開(kāi)心,編碼愉快!
李曉鈞
出版說(shuō)明
前言
第1章 Go語(yǔ)言簡(jiǎn)介1
1.1 為什么要學(xué)Go語(yǔ)言1
1.2 Go語(yǔ)言安裝1
1.3 Go語(yǔ)言開(kāi)發(fā)工具4
第2章 Go語(yǔ)言編程基礎(chǔ)6
2.1 數(shù)據(jù)類(lèi)型6
2.2 變量9
2.3 常量14
2.4 運(yùn)算符18
2.5 字符串22
2.6 流程控制26
第3章 作用域37
3.1 關(guān)于作用域37
3.2 約定和慣例40
第4章 代碼結(jié)構(gòu)化與項(xiàng)目管理43
4.1 包(package)43
4.2 Go項(xiàng)目開(kāi)發(fā)與編譯46
第5章 復(fù)合數(shù)據(jù)類(lèi)型54
5.1 數(shù)組(array)54
5.2 切片(slice)56
5.3 字典(map)60
第6章 type關(guān)鍵字63
6.1 type自定義類(lèi)型63
6.2 type定義類(lèi)型別名64
第7章 錯(cuò)誤處理與defer66
7.1 錯(cuò)誤處理66
7.2 關(guān)于defer68
第8章 函數(shù)74
8.1 函數(shù)(function)74
第9章 結(jié)構(gòu)體和接口86
9.1 結(jié)構(gòu)體(struct)86
9.2 接口(interface)94
第10章 方法101
10.1 方法的定義101
10.2 指針?lè)椒ㄅc值方法108
值方法111
10.3 匿名類(lèi)型的方法提升114
第11章 面向?qū)ο笈c內(nèi)存118
11.1 面向?qū)ο?18
11.2 指針和內(nèi)存119
第12章 并發(fā)處理124
12.1 協(xié)程124
12.2 通道(channel)127
12.3 同步與鎖131
第13章 測(cè)試與調(diào)優(yōu)140
13.1 測(cè)試140
13.2 調(diào)優(yōu)142
第14章 系統(tǒng)標(biāo)準(zhǔn)庫(kù)148
14.1 reflect包148
14.2 unsafe包155
14.3 sort包160
14.4 os包164
14.5 fmt包167
14.6 flag 包174
14.7 文件操作與I/O177
第15章 網(wǎng)絡(luò)服務(wù)186
15.1 Socket186
15.2 模板(Template)189
15.3 net/http包196
15.4 context包214
第16章 數(shù)據(jù)格式與存儲(chǔ)221
16.1 數(shù)據(jù)格式221
結(jié)構(gòu)體222
16.2 MySQL數(shù)據(jù)庫(kù)231
16.3 LevelDB與BoltDB 數(shù)據(jù)庫(kù)236
第17章 網(wǎng)絡(luò)爬蟲(chóng)244
17.1 Colly網(wǎng)絡(luò)爬蟲(chóng)框架244
17.2 goquery HTML解析246
第18章 Web框架—Gin250
18.1 關(guān)于Gin250
18.2 Gin實(shí)際應(yīng)用251
參考文獻(xiàn)260