go(又稱golang)是google的三位大牛羅伯特·格瑞史莫(RobertGriesemer),羅勃·派克(RobPike)及肯·湯普遜(KenThompson)在2009年推出的編程語言,它是一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言,很方便的支持協(xié)程,支持大并發(fā)。在后端開發(fā),微服務(wù),云計(jì)算方面應(yīng)用比較廣泛,目前國內(nèi)很多一線互聯(lián)網(wǎng)公司的服務(wù)都是用golang搭建,學(xué)好golang是很前途的。
我認(rèn)為學(xué)好golang有如下三步驟:
1、閱讀相關(guān)技術(shù)書籍
1)go語言程序設(shè)計(jì)(艾倫A.A.多諾萬著),golang語言基礎(chǔ),是入門首選
2)go語言圣經(jīng)(Kernighan著),golang語言的權(quán)威著作,進(jìn)階首選
3)golang的官方文檔(https://golang.org/pkg/)
4)golang大牛的演講和blog()
2、參與開發(fā)相關(guān)golang項(xiàng)目
1)開始學(xué)習(xí)時(shí),要邊看書變學(xué)習(xí),將書中的例子一定自己動(dòng)手寫一遍,運(yùn)行調(diào)試一下。
2)邊做項(xiàng)目邊學(xué)習(xí)是成長最快的方法,一定要參與golang項(xiàng)目的開發(fā),你的工作一定要是golang開發(fā)。
3、學(xué)習(xí)和參與優(yōu)秀的開源項(xiàng)目
閱讀優(yōu)秀開源項(xiàng)目提升自己的技術(shù)水平和開闊一些視野
1)beego(https://github.com/astaxie/beego)
國產(chǎn)開源的高性能Web框架,讓你快速的開發(fā)GoWeb應(yīng)用服務(wù),謝大主筆
2)codis(https://github.com/CodisLabs/codis)
Codis是一個(gè)分布式Redis解決方案,其實(shí)就是一個(gè)數(shù)據(jù)庫代理,讓你在使用Redis集群的時(shí)候,就像使用單機(jī)版的Redis是一樣的,對(duì)開發(fā)者透明。
3)docker(https://github.com/docker/docker)
無人不知的虛擬華平臺(tái),開源的應(yīng)用容器引擎,借助該引擎,開發(fā)者可以打包他們的應(yīng)用,移植到任何平臺(tái)上。
4)kubernetes(https://github.com/kubernetes/kubernetes)
Google出品,用于調(diào)度和管理Docker的開源容器管理系統(tǒng),利用他,可以方便的管理你的docker實(shí)例,哪怕非常多,也是目前最流行的docker管理系統(tǒng)。
5)golang(https://github.com/golang/go)
golang是開源的編程語言,可以閱讀golang的源碼提升自己
4、總結(jié)
經(jīng)常總結(jié),讓經(jīng)驗(yàn)沉淀下來,有條件可以寫博客,也經(jīng)常看看別人的技術(shù)博客