如何開始學習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語言了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM