1、服務(wù)器編程:以前你如果使用C或者C++做的那些事情,用Go來(lái)做很合適,例如處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等。

我們擁有十多年網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站建設(shè)經(jīng)驗(yàn),從網(wǎng)站策劃到網(wǎng)站制作,我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。為企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作、微信開(kāi)發(fā)、小程序設(shè)計(jì)、成都做手機(jī)網(wǎng)站、html5、等業(yè)務(wù)。無(wú)論您有什么樣的網(wǎng)站設(shè)計(jì)或者設(shè)計(jì)方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設(shè)計(jì)服務(wù)并滿足您的需求。
2、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理器、中間件:例如Etcd。
3、網(wǎng)絡(luò)編程:這一塊目前應(yīng)用最廣,包括Web應(yīng)用、API應(yīng)用、下載應(yīng)用,而且Go內(nèi)置的net/http包基本上把我們平常用到的網(wǎng)絡(luò)功能都實(shí)現(xiàn)了。
4、開(kāi)發(fā)云平臺(tái):目前國(guó)外很多云平臺(tái)在采用Go開(kāi)發(fā),我們所熟知的七牛云、華為云等等都有使用Go進(jìn)行開(kāi)發(fā)并且開(kāi)源的成型的產(chǎn)品。
5、區(qū)塊鏈:目前有一種說(shuō)法,技術(shù)從業(yè)人員把Go語(yǔ)言稱作為區(qū)塊鏈行業(yè)的開(kāi)發(fā)語(yǔ)言。如果大家學(xué)習(xí)區(qū)塊鏈技術(shù)的話,就會(huì)發(fā)現(xiàn)現(xiàn)在有很多很多的區(qū)塊鏈的系統(tǒng)和應(yīng)用都是采用Go進(jìn)行開(kāi)發(fā)的,比如ehtereum是目前知名度最大的公鏈,再比如fabric是目前最知名的聯(lián)盟鏈,兩者都有g(shù)o語(yǔ)言的版本,且go-ehtereum還是以太坊官方推薦的版本。
自1.0版發(fā)布以來(lái),go語(yǔ)言引起了眾多開(kāi)發(fā)者的關(guān)注,并得到了廣泛的應(yīng)用。go語(yǔ)言簡(jiǎn)單、高效、并發(fā)的特點(diǎn)吸引了許多傳統(tǒng)的語(yǔ)言開(kāi)發(fā)人員,其數(shù)量也在不斷增加。
使用 Go 語(yǔ)言開(kāi)發(fā)的開(kāi)源項(xiàng)目非常多。早期的 Go 語(yǔ)言開(kāi)源項(xiàng)目只是通過(guò) Go 語(yǔ)言與傳統(tǒng)項(xiàng)目進(jìn)行C語(yǔ)言庫(kù)綁定實(shí)現(xiàn),例如 Qt、Sqlite 等。
后期的很多項(xiàng)目都使用 Go 語(yǔ)言進(jìn)行重新原生實(shí)現(xiàn),這個(gè)過(guò)程相對(duì)于其他語(yǔ)言要簡(jiǎn)單一些,這也促成了大量使用 Go 語(yǔ)言原生開(kāi)發(fā)項(xiàng)目的出現(xiàn)。
從2013年起,經(jīng)朋友推薦開(kāi)始用Golang編寫游戲登陸服務(wù)器, 配合C++做第三方平臺(tái)驗(yàn)證. 到編寫?yīng)毩⒐ぞ邔?dǎo)表工具GitHub - davyxu/tabtoy: 跨平臺(tái)的高性能便捷電子表格導(dǎo)出器. 以及網(wǎng)絡(luò)庫(kù)GitHub - davyxu/cellnet: 簡(jiǎn)單,方便,高效的Go語(yǔ)言的游戲服務(wù)器底層. 最終使用這些工具及庫(kù)編寫整個(gè)游戲服務(wù)器框架, 我的感受是很不錯(cuò)的
細(xì)節(jié)看來(lái), 有如下的幾個(gè)點(diǎn):
語(yǔ)言, 庫(kù)
Golang語(yǔ)言特性和C很像, 簡(jiǎn)單, 一張A4紙就能寫完所有特性. 你想想看, C++到了領(lǐng)悟階段, 也只用那幾個(gè)簡(jiǎn)單特性, 剩下的都是一大堆解決各種內(nèi)存問(wèn)題的技巧. 而Golang一開(kāi)始就簡(jiǎn)單, 何必浪費(fèi)生命去研究那一大堆的奇技淫巧呢?
Golang的坑只有2個(gè):1. interface{}和nil配合使用, 2. for循環(huán)時(shí), 將循環(huán)變量引入閉包(Golang, Lua, C#閉包變量捕獲差異) 完全不影響正常使用, 復(fù)合語(yǔ)言概念, 只是看官方后面怎么有效的避免
用Golang就忘記繼承那套東西, 用組合+接口
用Golang服務(wù)器如何保證解決游戲服務(wù)器存盤一致性問(wèn)題? stop the world是肯定的, 但是Golang可以從語(yǔ)言層并發(fā)序列化玩家數(shù)據(jù), 再通過(guò)后臺(tái)存盤
channel是goroutine雖然是Golang的語(yǔ)言特性. 但是在編寫服務(wù)器時(shí), 其實(shí)只有底層用的比較多.
Golang的第三方庫(kù)簡(jiǎn)直多如牛毛, 好的也很多
不要說(shuō)模板了, C#的也不好用, 官方在糾結(jié)也不要加, 使用中, 沒(méi)模板確實(shí)有點(diǎn)不方便. 用interface{}/反射做泛型對(duì)于Golang這種強(qiáng)類型語(yǔ)言來(lái)說(shuō),還是有點(diǎn)打臉
運(yùn)行期
Golang和C++比性能的話, 這是C++的優(yōu)勢(shì), Golang因?yàn)闆](méi)虛擬機(jī), 只有薄薄的一層調(diào)度層. 因此性能是非常高的, 用一點(diǎn)性能犧牲換開(kāi)發(fā)效率, 妥妥的
1.6版后的GC優(yōu)化的已經(jīng)很好了, 如果你不是高性能,高并發(fā)Web應(yīng)用, 非要找出一堆的優(yōu)化技巧的話. 只用Golang寫點(diǎn)游戲服務(wù)器, 那點(diǎn)GC損耗可以忽略不計(jì)
和其他現(xiàn)代語(yǔ)言一樣, 崩潰捕捉是標(biāo)配功能, 我用Golang的服務(wù)器線上跑, 基本沒(méi)碰到過(guò)崩潰情況
熱更新: 官方已經(jīng)有plugin系統(tǒng)的提交, 跨平臺(tái)的. 估計(jì)很快就可以告別手動(dòng)cgo做so熱更新
開(kāi)發(fā), 調(diào)試, 部署, 優(yōu)化
LiteIDE是我首選的Golang的IDE, 雖然有童鞋說(shuō)B格不高. 但這估計(jì)實(shí)在是找不到缺點(diǎn)說(shuō)了, 別跟我說(shuō)Visual Studio, 那是宇宙級(jí)的...
曾經(jīng)聽(tīng)說(shuō)有人不看好Golang, 我問(wèn)為啥: 說(shuō)這么新的語(yǔ)言, 不好招人,后面打聽(tīng)到他是個(gè)策劃... 好吧
真實(shí)情況是這樣的: Golang對(duì)于有點(diǎn)編程基礎(chǔ)的新人來(lái)說(shuō), 1周左右可以開(kāi)始貢獻(xiàn)代碼. 老司機(jī)2~3天.
開(kāi)發(fā)效率還是不錯(cuò)的, 一般大的游戲功能, 2*2人一周3~4個(gè)整完. 這換C++時(shí)代, 大概也就1~2個(gè)還寫不完. 對(duì)接服務(wù)器sdk的話, 大概1天接個(gè)10多個(gè)沒(méi)問(wèn)題
Golang自帶性能調(diào)優(yōu)工具, 從內(nèi)存, CPU, 阻塞點(diǎn)等幾個(gè)方面直接出圖進(jìn)行分析, 非常直觀, 可以參考我博客幾年前的分析: 使用Golang進(jìn)行性能分析(Profiling)
Golang支持交叉編譯, 跨平臺(tái)部署, 什么概念? linux是吧? 不問(wèn)你什么版本, 直接windows上編譯輸出一個(gè)elf, 甩到服務(wù)器上開(kāi)跑.不超過(guò)1分鐘時(shí)間..
go語(yǔ)言適用的領(lǐng)域有:
Go語(yǔ)言主要用作服務(wù)器端開(kāi)發(fā),其定位是用來(lái)開(kāi)發(fā)“大型軟件”的,適合于很多程序員一起開(kāi)發(fā)大型軟件,并且開(kāi)發(fā)周期長(zhǎng),支持云計(jì)算的網(wǎng)絡(luò)服務(wù)。
Go語(yǔ)言作為服務(wù)器編程語(yǔ)言,很適合處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理等;網(wǎng)絡(luò)編程方面,Go語(yǔ)言廣泛應(yīng)用于Web應(yīng)用、API應(yīng)用、下載應(yīng)用等;除此之外,Go語(yǔ)言還可用于內(nèi)存數(shù)據(jù)庫(kù)和云平臺(tái)領(lǐng)域,目前國(guó)外很多云平臺(tái)都是采用Go開(kāi)發(fā)。
Go語(yǔ)言能夠讓程序員快速開(kāi)發(fā),并且在軟件不斷的增長(zhǎng)過(guò)程中,它能讓程序員更容易地進(jìn)行維護(hù)和修改。它融合了傳統(tǒng)編譯型語(yǔ)言的高效性和腳本語(yǔ)言的易用性和富于表達(dá)性。
Go語(yǔ)言作為一門大型項(xiàng)目開(kāi)發(fā)語(yǔ)言,在很多大公司相繼使用,甚至完全轉(zhuǎn)向Go開(kāi)發(fā),其中代表有Google、Facebook、騰訊、百度、阿里巴巴、京東、小米以及360、美團(tuán)、滴滴以及新浪等,因此,Go語(yǔ)言的開(kāi)發(fā)前景還是很不錯(cuò)的!
當(dāng)前題目:go語(yǔ)言大型分布 go語(yǔ)言的nil
網(wǎng)站路徑:http://www.chinadenli.net/article6/ddoigig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、品牌網(wǎng)站制作、移動(dòng)網(wǎng)站建設(shè)、面包屑導(dǎo)航、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)