如何開始學習Go語言

蟲師發表於2019-05-21

如何開始學習Go語言

除了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語言本身,基本是做不了什麼事的,必須要使用第三方擴充套件庫。

https://awesome-go.com/

這裡羅列了Go語言的第三方庫,通過這些第三方庫的介紹,我們也可以大概知道Go可以用來幹什麼。

https://go-search.org/

如果你知道庫的名字的話,也可以在這個網站上搜尋。

據我瞭解,Go的第三方庫大多都在GitHub上面。


第六步:用Go做Web開發

Go是靜態語言,而且支援併發程式設計,所以,他有天然的效能優勢,大多公司主要使用Go也是開發後端服務(即API)。

終於到了實戰階段,如果我們真的要掌握一門語言,那麼一定要用它來開發一個專案出來。這個過程大概需要一個月。

Beego:https://beego.me/

Beego是Go下在主流的Web開發框架,資料相對比較豐富,而且有完善的文件。你可為此制定一個目標,比如用它來開發一個Blog,為此,你需要詳細閱讀Beego文件,以及學習相關的Web開發技術。

如何開始學習Go語言

如何開始學習Go語言

等你完成這個專案的時候,我想你已經會使用Go語言了。

相關文章