其實(shí)Go語言主要用作服務(wù)器端開發(fā),其定位是用來開發(fā)“大型軟件”的,適合于需要很多程序員一起開發(fā),并且開發(fā)周期較長的大型軟件和支持云計(jì)算的網(wǎng)絡(luò)服務(wù)。 (推薦學(xué)習(xí):go)
Go語言融合了傳統(tǒng)編譯型語言的高效性和腳本語言的易用性和富于表達(dá)性,不僅提高了項(xiàng)目的開發(fā)速度,而且后期維護(hù)起來也非常輕松。
鑒于Go語言的特點(diǎn)和設(shè)計(jì)的初衷,從以下幾個(gè)方面來分析Go語言擅長的領(lǐng)域:
在服務(wù)器編程方面,Go語言適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫代理等;
網(wǎng)絡(luò)編程方面,Go語言廣泛應(yīng)用于 Web 應(yīng)用、API 應(yīng)用、下載應(yīng)用等;
此外,Go語言還可用于內(nèi)存數(shù)據(jù)庫和云平臺(tái)領(lǐng)域,目前國外很多云平臺(tái)都是采用 Go 開發(fā)。
除了上面介紹到的,Go語言還可以用來開發(fā)底層,例如以太坊、超級(jí)賬本等都是基于Go語言開發(fā)的。
而且對(duì)于現(xiàn)在比較流行的區(qū)塊鏈技術(shù)方面,Go語言也是非常受歡迎的,很多基于區(qū)塊鏈的 DApps(去中心化應(yīng)用)和工具都是用的Go語言來實(shí)現(xiàn)的。
下面列舉了一些基于Go語言開發(fā)的優(yōu)秀開源項(xiàng)目:
云計(jì)算基礎(chǔ)設(shè)施領(lǐng)域,代表項(xiàng)目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存儲(chǔ)等。
基礎(chǔ)軟件,代表項(xiàng)目:tidb、influxdb、cockroachdb 等。
微服務(wù),代表項(xiàng)目:go-kit、micro、monzo bank 的 typhon、bilibili 等。
互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,代表項(xiàng)目:以太坊、hyperledger 等。
總之,Go語言的優(yōu)勢還是比較多的,比如Go語言的性能非常出色,最關(guān)鍵的是在性能強(qiáng)勁的同時(shí)還能像解釋型語言一樣高效地進(jìn)行開發(fā)。