近年來,Go 語言已成為一種非常流行的編程語言。2022年 StackOverflow 開發(fā)人員調(diào)查 將 Go 列為最受歡迎的編程語言之一,支持率高達(dá) 65%。
但也許它在 DevOps 社區(qū)中如此受歡迎的原因是用它構(gòu)建的技術(shù)。Docker、Kubernetes、Grafana 和 Prometheus 都是用 Go 構(gòu)建的。
Go 得益于快速的編譯時(shí)間和非常快的運(yùn)行時(shí)間,這使其性能成為所有領(lǐng)域開發(fā)人員的巨大紅利。

為什么 Go 對(duì)于 DevOps 如此有用?
出于多種原因,您可能想要為 DevOps 學(xué)習(xí) Go(也稱為 Golang)。
首先,Go 是一種靜態(tài)類型語言,這意味著必須在編譯時(shí)指定變量的類型。這樣可以更輕松地在將代碼部署到生產(chǎn)環(huán)境之前捕獲代碼中的錯(cuò)誤和漏洞。
// In a statically-typed language, such as Go, the type of a variable must be specified at compile time.
// This means that the type of a variable is determined when the code is written, and cannot be changed at runtime.
// Go :
var x int = 3
x = "This would cause an error" // This would cause an error as the variable is an int and cannot be changed later.
// Python
// In a dynamically typed language like Python, we don't need to declare variable types
x = 3
x = "This would work fine :)"
// The main advantage of statically-typed languages is that they can catch errors and bugs in your code at compile time.
// This can save you time and effort when you are debugging your code, and can help prevent runtime errors.
Go 的標(biāo)準(zhǔn)庫
Go 還帶有一個(gè)強(qiáng)大的標(biāo)準(zhǔn)庫,其中包含許多用于處理常見 DevOps 任務(wù)的有用包,例如:
- 內(nèi)置并發(fā)支持,包括 goroutines 和通道
- I/O,包括讀取和寫入文件、網(wǎng)絡(luò)套接字以及 HTTP 客戶端和服務(wù)器
- 密碼學(xué)和安全性,包括安全散列和加密算法
- 數(shù)據(jù)操作,包括 JSON、XML 和 CSV 數(shù)據(jù)的解析器
- 與操作系統(tǒng)交互的接口,包括支持運(yùn)行進(jìn)程、訪問文件系統(tǒng)以及處理時(shí)間和日期
- 用于構(gòu)建和運(yùn)行 Go 程序的工具,包括構(gòu)建系統(tǒng)、包管理器和測(cè)試框架。

簡(jiǎn)單明了的語法使其易于學(xué)習(xí)和閱讀。當(dāng)您需要快速理解和修改現(xiàn)有代碼時(shí),這可以節(jié)省您的時(shí)間和精力。這是任何開發(fā)人員的夢(mèng)想。
最后,Go 是一種開源語言,這意味著它擁有龐大而活躍的開發(fā)人員社區(qū),他們?yōu)樵撜Z言及其庫和工具生態(tài)系統(tǒng)做出貢獻(xiàn)。這個(gè)社區(qū)隨著時(shí)間的推移不斷發(fā)展壯大,這可以讓您在需要時(shí)更容易找到幫助和支持。
在 Go 中構(gòu)建 Hello World
因此,考慮到所有這些,讓我們開始構(gòu)建一個(gè)簡(jiǎn)單的 Hello World 應(yīng)用程序。
讓我們?cè)谖覀兊沫h(huán)境中安裝 Go,以便我們可以開始使用它進(jìn)行創(chuàng)建。首先前往 https://go.dev/dl/,根據(jù)您的操作系統(tǒng),您將獲得一些下載選項(xiàng)。

我將在 Ubuntu 20.04 上運(yùn)行本教程,但如果您使用的是其他操作系統(tǒng),請(qǐng)按照相關(guān)安裝程序進(jìn)行操作,如果您有任何問題,請(qǐng)查閱文檔。
# Installing Go on Ubuntu 20.04
$ wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.19.3.linux-amd64.tar.gz
# Add to PATH
$ export PATH=$PATH:/usr/local/go/bin
# Ensure the tool has installed successfully
$ go version
安裝 Go 后,您可以通過為項(xiàng)目創(chuàng)建新目錄并在終端或命令提示符中導(dǎo)航到該目錄來創(chuàng)建新項(xiàng)目。
在項(xiàng)目目錄中,創(chuàng)建一個(gè)名為 main.go 的文件。這將是您的 Go 應(yīng)用程序的主文件。
在您喜歡的文本編輯器中打開 main.go 文件并添加以下代碼:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
在 main 函數(shù)中,我們使用 fmt 包來打印字符串 “Hello, World!” 到控制臺(tái)。該 fmt 包提供了多種格式化和打印文本的功能。
要運(yùn)行該應(yīng)用程序,請(qǐng) go run 在終端或命令提示符中使用以下命令:
go run main.go
這將運(yùn)行文件 main 中的函數(shù),main.go 并打印 “Hello, World!” 到控制臺(tái)。
恭喜,您剛剛創(chuàng)建了第一個(gè) Go 應(yīng)用程序!Go 是一種功能強(qiáng)大的語言,非常適合各種應(yīng)用程序,包括 Web 開發(fā)、系統(tǒng)編程和數(shù)據(jù)分析。要了解有關(guān) Go 的更多信息,請(qǐng)查看官方 Go 文檔 ( https://golang.org/doc/ )。