如何開始學習Go語言

除了Java、Python和JavaScript以外,若是要開始學習一門新語言的話,我想應該是Go!html

Go語言正在被愈來愈多的公司使用。咱們公司的後端服務已經全面採用Go語言實現了。golang

最開始接觸Go語言是去年將一份Go代碼「翻譯」成Python並集成到測試平臺上,說來也挺神奇,我歷來沒學過Go卻完成了這個工做,這也側面反應了Go的語法仍是很平易近人的。web

今年,調崗以後已經沒有太多時間寫代碼了,但若是要開始學習一個新的語言或技術的話,我最想學的是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語言了。

相關文章
相關標籤/搜索