除了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程序,認識Go語言的語法。性能
package main import ( "fmt" ) func main(){ fmt.Println("helloworld!") }
接下來,你可能要花一週左右的時間熟悉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作測試也很是簡單。好比,這是一個被測試文件: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是靜態語言,並且支持併發編程,因此,他有自然的性能優點,大多公司主要使用Go也是開發後端服務(即API)。
終於到了實戰階段,若是咱們真的要掌握一門語言,那麼必定要用它來開發一個項目出來。這個過程大概須要一個月。
Beego:https://beego.me/
Beego是Go下在主流的Web開發框架,資料相對比較豐富,並且有完善的文檔。你可爲此制定一個目標,好比用它來開發一個Blog,爲此,你須要詳細閱讀Beego文檔,以及學習相關的Web開發技術。
等你完成這個項目的時候,我想你已經會使用Go語言了。