極簡(jiǎn)Go語言——后端開發(fā)入門之道
定 價(jià):¥59
中 教 價(jià):¥35.40 (6.00折)
庫 存 數(shù): 8
幫助讀者使用相關(guān)Go語言資源快速開發(fā)自己的谷歌程序;充分利用Go的輕量級(jí)運(yùn)行和并發(fā)特性一步步展示如何開發(fā)定制應(yīng)用程序;展示后端開發(fā)中的編程過程和功能、詳細(xì)示例、代碼示例和節(jié)省時(shí)間的技巧。在Windows、Linux或macOS設(shè)備上安裝Go;開始編寫自己的Go應(yīng)用程序;定義變量并在程序中使用變量;使用語句、函數(shù)、循環(huán)和數(shù)組;使用Go模塊簡(jiǎn)化程序開發(fā);利用內(nèi)置和第三方軟件包;編寫適合您自己編程需求的定制包;理解經(jīng)典結(jié)構(gòu)和算法;使用Go例程和并發(fā)性提高性能;導(dǎo)入外部代碼即使代碼不是用Go!
(1)我們希望讓使用其他語言的開發(fā)人員更容易過渡到Go的世界。 (2)我們希望您能從其他編程語言和計(jì)算機(jī)的底層架構(gòu)中有所領(lǐng)悟。這可以幫助您更好地理解Go適合哪些任務(wù),不適合哪些任務(wù),以及它在內(nèi)部是如何工作的,為什么是這樣工作的。
本書旨在使讀者更輕松地使用和理解Go編程語言。Go作為一種編程語言,在構(gòu)建時(shí)就考慮到了后端開發(fā)。隨著摩爾定律的終結(jié),更好更快的計(jì)算機(jī)已經(jīng)不能滿足開發(fā)的需求。因此,我們必須適應(yīng)新常態(tài)大規(guī)模、分布式系統(tǒng)、運(yùn)行高度優(yōu)化的軟件棧。這些分布式系統(tǒng)有著完全不同的硬件體系,也使得軟件領(lǐng)域需要進(jìn)行創(chuàng)新與改變。現(xiàn)代軟件系統(tǒng)正在遠(yuǎn)離大型而單一的設(shè)計(jì)。相反,它們由許多較小的微服務(wù)組成,支持跨項(xiàng)目的代碼重用和委托所有這些都要求代碼更干凈。隨著軟件領(lǐng)域的發(fā)展,對(duì)支持這種變化的基礎(chǔ)設(shè)施的需求也在增加,從而產(chǎn)生了各種新的編程語言,這些語言是全新的,可以滿足這種需求。Go就是其中一種語言,它具有適合基于微服務(wù)進(jìn)行軟件開發(fā)的特性,如較快的編譯速度、較小的二進(jìn)制文件和良好的可移植性。Go還有一些其獨(dú)有的特性,例如Goroutine(并發(fā)執(zhí)行的活動(dòng))和Channel(活動(dòng)之間的連接),它們可以實(shí)現(xiàn)強(qiáng)大且易于使用的并發(fā)程序。Go是后端開發(fā)中許多基礎(chǔ)服務(wù)背后的引擎,例如Kubernetes、Docker、etcd、CockroachDB等。通過使用這些主流工具已經(jīng)內(nèi)置的相同語言,代碼會(huì)更相似,并可以更好地使用基于企業(yè)級(jí)后端開發(fā)的開放源碼的大型生態(tài)系統(tǒng)。通過本書,我們希望讀者能成為Go開發(fā)者,這樣他們就可以利用Go作為解決問題的一個(gè)工具。但Go不僅僅是一種工具,它更是一種可以解決企業(yè)級(jí)問題的工具。因此,Go是編寫代碼的首選語言。我們的目標(biāo)不僅僅是教授Go語言,而是教授一種方法。在每一步中,都將Go與用于類似任務(wù)的其他主流編程語言(如Swift、C、Python和Java)進(jìn)行比較,甚至深入到操作系統(tǒng)和CPU級(jí)別,從而展示這些語言是如何與計(jì)算機(jī)的硬件和軟件交互的。這樣做的目的有兩點(diǎn):(1) 我們希望幫助使用其他語言的開發(fā)人員可以更容易地過渡到使用Go語言。(2) 我們希望幫助讀者更好地理解Go適合哪些任務(wù),不適合哪些任務(wù),以及它在內(nèi)部是如何工作的和為什么是這樣工作的。
著者2024年2月
第1章為什么使用Go11.1Go的設(shè)計(jì)目標(biāo)21.2Go的使用平臺(tái)31.3Go的編譯器和運(yùn)行時(shí)41.4并發(fā)性6第2章快速入門92.1安裝Go102.1.1使用系統(tǒng)包管理器安裝Go102.1.2安裝預(yù)編譯的二進(jìn)制文件102.1.3從源碼中安裝Go122.2Go的基本概念132.2.1常規(guī)項(xiàng)目結(jié)構(gòu)132.2.2第一個(gè)Go程序Hello, World!152.2.3變量172.2.4if語句和switch語句242.2.5循環(huán)282.2.6函數(shù)332.2.7結(jié)構(gòu)體452.2.8接口512.2.9錯(cuò)誤55第3章Go模塊613.1使用內(nèi)置包623.2使用第三方包733.3構(gòu)建自己的包77第4章使用內(nèi)置包834.1常見的數(shù)據(jù)結(jié)構(gòu)和算法844.2Dijkstra路徑查找算法844.3康威生命游戲1024.4工作量證明116第5章并發(fā)1275.1并發(fā)、線程和并行1285.2Goroutine(Go協(xié)程)1305.3通道1335.4工作量證明: 第2部分150第6章互操作性1616.1為什么互操作性很重要1626.2與C代碼的互操作1656.3與Swift的互操作176