閱讀相關(guān)技術(shù)書籍1)go語言程序設(shè)計(艾倫A.A.多諾萬著),golang語言基礎(chǔ),是入門首選2)go語言圣經(jīng)(Kernighan著),golang語言的權(quán)威著作,進(jìn)階首選3)golang的官方文檔(https。很多公司后臺已經(jīng)用go語言重構(gòu),尤其有高并發(fā)的項目,因為go語言很容器創(chuàng)建上萬的協(xié)程來并發(fā)。
1、Go語言現(xiàn)在的前景怎么樣?
我學(xué)習(xí)了java和golang,java用了5年,無限感慨java的生態(tài),工業(yè)級的語言,無數(shù)的解決方案,不管你是做互聯(lián)網(wǎng)還是傳統(tǒng)行業(yè)的開發(fā)用java開發(fā)總能解決一切很多的問題,國內(nèi)巨頭阿里巴巴更是把java推向了極致,golang作為一個新聲代語言,它的簡便語法,空前極低上手難度,并且他的生態(tài)還是慢慢的開始完善,例如dockeretcdkubernetes國內(nèi)的TiDB,Beego,甚至阿里巴巴也推出了dubbo-go,國內(nèi)頭條,嗶哩嗶哩,滴滴等公司的技術(shù)棧也慢慢從java轉(zhuǎn)到了golang并不是說java不好,只能說golang很簡單,你開發(fā)一個web應(yīng)用golang20行代碼,java可能需要你會知道完整的技術(shù)棧例如springboot技術(shù)棧,而golang甚至只需要你會httprouter,rpc框架的支持java比也是不逞多讓,CICD領(lǐng)域go就完全吊打java了,畢竟docker和kubernetes都是golang寫的,天生無縫支持,golang的并發(fā)模型也是領(lǐng)先java,gorouting天生為并發(fā)而生,所以現(xiàn)在學(xué)golang是一個不錯的選擇,但是golang也有它的缺點,項目管理,包依賴管理不如java,泛型等支持也不是很好,相比java的生態(tài)go國內(nèi)的生態(tài)還有所欠缺,再說就業(yè),java的就業(yè)比golang簡單,因為缺口大,但是golang的就業(yè)薪資并不比java低,所以從語言的角度來說golang優(yōu)越于java,生態(tài)上低于java,前景上理論上好于java,這需要看國內(nèi)的大風(fēng)向,所以建議學(xué)習(xí)一下。
2、如何學(xué)習(xí)go語言?
go(又稱golang)是google的三位大牛羅伯特·格瑞史莫(RobertGriesemer),羅勃·派克(RobPike)及肯·湯普遜(KenThompson)在2009年推出的編程語言,它是一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型,并具有垃圾回收功能的編程語言,很方便的支持協(xié)程,支持大并發(fā),在后端開發(fā),微服務(wù),云計算方面應(yīng)用比較廣泛,目前國內(nèi)很多一線互聯(lián)網(wǎng)公司的服務(wù)都是用golang搭建,學(xué)好golang是很前途的。
我認(rèn)為學(xué)好golang有如下三步驟:1、閱讀相關(guān)技術(shù)書籍1)go語言程序設(shè)計(艾倫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項目1)開始學(xué)習(xí)時,要邊看書變學(xué)習(xí),將書中的例子一定自己動手寫一遍,運(yùn)行調(diào)試一下,
2)邊做項目邊學(xué)習(xí)是成長最快的方法,一定要參與golang項目的開發(fā),你的工作一定要是golang開發(fā)。3、學(xué)習(xí)和參與優(yōu)秀的開源項目閱讀優(yōu)秀開源項目提升自己的技術(shù)水平和開闊一些視野1)beego(https://github.com/astaxie/beego)國產(chǎn)開源的高性能Web框架,讓你快速的開發(fā)GoWeb應(yīng)用服務(wù),謝大主筆2)codis(https://github.com/CodisLabs/codis)Codis是一個分布式Redis解決方案,其實就是一個數(shù)據(jù)庫代理,讓你在使用Redis集群的時候,就像使用單機(jī)版的Redis是一樣的,對開發(fā)者透明,
3)docker(https://github.com/docker/docker)無人不知的虛擬華平臺,開源的應(yīng)用容器引擎,借助該引擎,開發(fā)者可以打包他們的應(yīng)用,移植到任何平臺上。4)kubernetes(https://github.com/kubernetes/kubernetes)Google出品,用于調(diào)度和管理Docker的開源容器管理系統(tǒng),利用他,可以方便的管理你的docker實例,哪怕非常多,也是目前最流行的docker管理系統(tǒng)。