除了Java、Python和JavaScript之外,如果要開始學習一門新語言的話,我想應該是Go!
Go語言正在被越來越多的公司使用。我們公司的後端服務已經全面採用Go語言實現了。
最開始接觸Go語言是去年將一份Go程式碼“翻譯”成Python並整合到測試平臺上,說來也挺神奇,我從來沒學過Go卻完成了這個工作,這也側面反應了Go的語法還是很平易近人的。
今年,調崗之後已經沒有太多時間寫程式碼了,但如果要開始學習一個新的語言或技術的話,我最想學的是Go!
目前來看,Go似乎還並沒有太多測試人員使用的場景,不過,我之前介紹過的BDD行為驅動框架gauge是由Go開發的,當然,它也支援使用Go來編寫BDD測試程式碼。
對於,已經有一定開發經驗的同學,如何快速的開始學習Go語言呢?我這裡給一些思路。
第一步:下載和安裝
下載地址:https://studygolang.com/dl
在配置環境的時候你需要重點了解GOROOT、GOPATH的作用。
你還要準備一款稱手的編輯器,如果你像我一樣,一直都在使用VS Code的話,那麼就它就可以了。
第二步:從hello world開始
先執行一個hello world程式,認識Go語言的語法。
package main
import (
"fmt"
)
func main(){
fmt.Println("helloworld!")
}
第三步:熟悉Go的語法
接下來,你可能要花一週左右的時間熟悉Go語言的語法。比如,變數定義、if/for、函式、Map、跨檔案的程式呼叫…等,當然,還有一些Go特有的知識。
我是看不進去厚厚的程式設計書,所以一般會找簡單的教程。
菜鳥教程:https://www.runoob.com/go/go-tutorial.html
當然,我更喜歡看視訊教程,雖然質量參差不齊,但我仍然覺得看視訊比我自己看書更有效率。
騰訊課堂:https://ke.qq.com/course/list/go
網易雲課堂:https://study.163.com/courses-search?keyword=go
熟悉一段Go程式碼:
package main
import"fmt"
func myFunc() {
i := 0
Here: //這行的第一個詞,以冒號結束作為標籤
fmt.Println(i)
i++
if i <10{
goto Here //跳轉到Here去
}
}
func main() {
//呼叫函式
myFunc()
}
第四步:Go如何做單元測試
針對Go做測試也非常簡單。比如,這是一個被測試檔案:add.go。
package test_demo
func Add(a int, b int) int{
return a + b
}
下面針對Add()函式編寫測試用例,test_add.go
package test_demo
import (
"testing"
)
func TestAdd1(t *testing.T){
r:= Add(1, 2)
if r !=3{
t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)
}
}
func TestAdd2(t *testing.T){
r:= Add(2, 2)
if r !=4{
t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)
}
}
你只需要執行 go test
命令就可以執行上面的測試了。
第五步:從哪兒找第三方庫
當然,你只學習go語言本身,基本是做不了什麼事的,必須要使用第三方擴充套件庫。
這裡羅列了Go語言的第三方庫,通過這些第三方庫的介紹,我們也可以大概知道Go可以用來幹什麼。
如果你知道庫的名字的話,也可以在這個網站上搜尋。
據我瞭解,Go的第三方庫大多都在GitHub上面。
第六步:用Go做Web開發
Go是靜態語言,而且支援併發程式設計,所以,他有天然的效能優勢,大多公司主要使用Go也是開發後端服務(即API)。
終於到了實戰階段,如果我們真的要掌握一門語言,那麼一定要用它來開發一個專案出來。這個過程大概需要一個月。
Beego:https://beego.me/
Beego是Go下在主流的Web開發框架,資料相對比較豐富,而且有完善的文件。你可為此制定一個目標,比如用它來開發一個Blog,為此,你需要詳細閱讀Beego文件,以及學習相關的Web開發技術。
等你完成這個專案的時候,我想你已經會使用Go語言了。