引用公眾號(hào):進(jìn)階的腳步
鏈接:我是怎么從PHP轉(zhuǎn)到Go的?
前言
最近換了工作,從入職到熟悉業(yè)務(wù),到真正參與項(xiàng)目研發(fā),這個(gè)過(guò)程有很多需要總結(jié)和思考的地方,主要是牽涉到技術(shù)棧切換,匯總一下分享出來(lái),希望可以幫助到你。關(guān)于切換技術(shù)棧,對(duì)一個(gè)研發(fā)工程師來(lái)說(shuō),意味著戰(zhàn)場(chǎng)換槍?zhuān)V袚Q船。那么從PHP切換Golang,有哪些需要注意的呢?
有哪些需要注意的呢?
- 編程思想
這個(gè)聽(tīng)起來(lái)很空泛,很難具體的描述出來(lái),但是跟實(shí)際研發(fā)關(guān)聯(lián)很深。接觸Go的時(shí)候,很容易帶著主觀思維去思考,活生生把Go寫(xiě)成了Java、PHP。所以,剛接觸Go的時(shí)候不要背著歷史包袱。要注重了解go所推崇的編程思想。
2.類(lèi)比思維
在切換技術(shù)棧,當(dāng)然在PHP所經(jīng)常用到的技術(shù)中間件和開(kāi)發(fā)工具也會(huì)跟著切換。
簡(jiǎn)單羅列一下:
一致性協(xié)調(diào):zookeeper => etcd
消息隊(duì)列:kafka => nsq
開(kāi)發(fā)框架:Laravel/ThinkPHP/Yaf => Gin/Beego
注:當(dāng)然在此只是簡(jiǎn)單說(shuō)下,PHP開(kāi)發(fā)過(guò)程用到的中間件不會(huì)局限以上幾個(gè),視公司技術(shù)選型而定。
學(xué)習(xí)資料分享
當(dāng)然在學(xué)習(xí)中也踩了不少坑,在此羅列一下一路走來(lái)所用到的資料,希望能幫到大家。
(1)語(yǔ)言基礎(chǔ)
- https://github.com/Unknwon/go-fundamental-programming《Go編程基礎(chǔ)》
- https://github.com/Unknwon/the-way-to-go_ZH_CN 《go入門(mén)指南》
- https://github.com/Unknwon/go-web-foundation《GoWeb基礎(chǔ)》
- https://github.com/Unknwon/go-rock-libraries-showcases《go庫(kù)講解》
(2)進(jìn)階相關(guān)
- 書(shū)籍《go開(kāi)發(fā)實(shí)戰(zhàn)》
- 書(shū)籍《go并發(fā)編程》
- https://github.com/golang-china/gopl-zh 《go語(yǔ)言圣經(jīng)》中文版
- https://golangtc.com 《Golang中國(guó)》
- https://studygolang.com 《Go語(yǔ)言中文網(wǎng) 》
(3)適合閱讀源碼的開(kāi)源項(xiàng)目
https://github.com/cw1997/NATBypass
簡(jiǎn)單的內(nèi)網(wǎng)穿透工具,適合讀源碼https://github.com/siddontang/go-mysql-elasticsearch
MySQL與es的同步工具,代碼量不大
注:在學(xué)習(xí)過(guò)程中有需要討論的,可以在后臺(tái)私信我。進(jìn)階的腳步,從未停止。