出身名門
在你閱讀以下內(nèi)容時交洗,我不得不告訴你一個事實,編程語言Go正在成為一顆冉冉升起的新星橡淑,為什么這樣說构拳,出身于Google,它是名門出身梁棠,它的作者可以說稱得上是神級一樣的人物≈蒙現(xiàn)在讓我們看看它的作者:
- 肯·湯普遜:設(shè)計了B語言和C語言,創(chuàng)建了Unix和Plan 9操作系統(tǒng)符糊,1983年圖靈獎得主凫海,Go語言的共同作者。
- 羅布·派克:Unix小組的成員男娄,參與Plan9和Inferno操作系統(tǒng)行贪,參與 Limbo和Go語言的研發(fā)漾稀,《Unix編程環(huán)境》作者之一。
- 羅伯特·格里澤默:制作Java的HotSpot編譯器和Chrome瀏覽器的JavaScript引擎V8
- 布拉德·菲茨帕特里克:LiveJournal的創(chuàng)始人建瘫,著名開源項目memcached的作者崭捍。
看到這是不是覺得這個十幾歲的Go少年背景如此之大,其實Go語言的前身僅僅是大佬們在實驗室中的一個實驗品暖混,后來在研究的過程中大佬們逐漸發(fā)現(xiàn)它的優(yōu)勢缕贡,最終Go正式版在2012年誕生,并迅速登上熱門語言的話題拣播。有調(diào)查顯示在2019年程序員最想要學(xué)習(xí)的編程語言Go榮登第一,其次是Kotlin和Python收擦。
哪些公司在用Go
不得不說贮配,作為開發(fā)Go語言的公司,在實踐Go語言上做出了不少的努力塞赂。而且也開源了很多優(yōu)秀的項目泪勒,
七牛云
作為國內(nèi)領(lǐng)先的企業(yè)級云服務(wù)商,七牛云幾乎所有的項目都用Go語言編寫宴猾。
騰訊
騰訊可以說是國內(nèi)的大公司圆存,在Go語言的應(yīng)用方面主要是有關(guān)Docker容器方面。
今日頭條
如今大家都在用的今日頭條曾經(jīng)使用Go 語言構(gòu)建了大規(guī)模的微服務(wù)架構(gòu)
當(dāng)然還有很多仇哆,不僅僅是國內(nèi)的大公司還是國外的大公司沦辙,而且有很多小的公司正在實踐Go,也正是看中了Go的未來趨勢讹剔,所以才會廣泛的傳播和應(yīng)用油讯。
Go優(yōu)勢
快速上手
Go不是一種解釋型語言——它是編譯型的。這大大地(drastically)減少了在運行中突然出現(xiàn)的Bug延欠。這一點有點像C語言陌兑,代碼先被編譯,錯誤會在編譯時出現(xiàn)并得到處理由捎,然后才能運行;但是兔综,它比C更高級,比JavaScript和Python更具生產(chǎn)力狞玛。
性能
Go語言同C語言一樣可以直接將程序編譯成二進(jìn)制文件软驰,并且使用Go編譯的程序可以媲美C和C++的速度,眾所周知为居,Python由于簡單易用碌宴,在數(shù)據(jù)分析方面有著很好的優(yōu)勢,但唯一的缺點就是速度慢蒙畴,而Go語言早早的就站在了巨人的肩膀上贰镣,不僅速度快呜象,而且也具有簡單易用易學(xué)的特性,你或許聽說過學(xué)習(xí)Java至少要學(xué)習(xí)半年入門基礎(chǔ)碑隆,而Go僅僅需要一個星期左右恭陡,就可以編寫出一個很好的程序。
并發(fā)
Go 可以說最大的特點之一就是它是原生支持并發(fā)的上煤,在Go中休玩,用戶可以輕輕松松的運行幾千甚至上萬的并發(fā),Go的協(xié)程模型充分利用的CPU資源劫狠,因此Go廣泛應(yīng)用在服務(wù)端的應(yīng)用
網(wǎng)絡(luò)編程
在互聯(lián)網(wǎng)時代拴疤,網(wǎng)絡(luò)編程出現(xiàn)爆發(fā)式的增長,go語言具有天然的web優(yōu)勢独泞,提供了豐富的有關(guān)網(wǎng)絡(luò)編程的接口呐矾,而不再依靠第三方服務(wù),僅僅七八行就可以啟動一個Web程序懦砂。
除了以上這些Go還有很多優(yōu)勢蜒犯,比如延遲defer機(jī)制,交叉編譯使得它成為第一門完全支持 UTF-8 的編程語言荞膘》K妫可以說Go 語言做到了真正的國際化。
云計算時代
Go 語言被稱為云計算時代的 C 語言羽资,它在軟件開發(fā)效率和運行效率之間做出了絕佳的權(quán)衡淘菩。這使得它既適應(yīng)于互聯(lián)網(wǎng)應(yīng)用的極速開發(fā),又能在高并發(fā)削罩、高性能的開發(fā)場景中如魚得水瞄勾。
Go的使用場景
Go在Web 系統(tǒng)、API 應(yīng)用弥激、下載應(yīng)用进陡、游戲后端,以及各種服務(wù)器編程都有涉獵微服,Go 還適合分布式系統(tǒng)趾疚、網(wǎng)關(guān)類系統(tǒng)(微服務(wù)網(wǎng)關(guān))、數(shù)據(jù)庫代理器以蕴、基礎(chǔ)服務(wù)等的開發(fā)糙麦。
高并發(fā)領(lǐng)域
解決秒級高并發(fā),可以說丛肮,只要有高并發(fā)高可用需求的服務(wù)端程序都可以用 Go 開發(fā)赡磅。
大數(shù)據(jù)領(lǐng)域
數(shù)據(jù)挖掘(尤其是爬蟲)、數(shù)據(jù)分析宝与、數(shù)據(jù)存儲方面焚廊,Go 都非常適合冶匹。Go 和 Python 也是十分優(yōu)秀的組合。海量存儲有很多咆瘟,比如 InfuxDB嚼隘、CockroachDB、TiDB袒餐。
區(qū)塊鏈技術(shù)
因為區(qū)塊鏈系統(tǒng)開發(fā)涉及到算力及應(yīng)用飞蛹,雖然使用C++語言可以解決,但始終過于繁瑣灸眼,Java卧檐、Python等雖然能降低開發(fā)成本,但是性能及區(qū)塊鏈的算力又跟不上幢炸,所以很多企業(yè)在開發(fā)區(qū)塊鏈技術(shù)的時候泄隔,就會選擇開發(fā)成本低并且開發(fā)性能客觀的Go語言作為首選語言。
微服務(wù)領(lǐng)域
在構(gòu)建微服務(wù)方面宛徊,由于Go天然的網(wǎng)絡(luò)優(yōu)勢,使他可以快速部署逻澳,測試微服務(wù)闸天,對于微服務(wù)的開發(fā)似乎有著原生的支持。
最后
最后總結(jié)部分Go語言的開源優(yōu)秀項目斜做,可以說這些項目覆蓋了方方面面苞氮,包括了監(jiān)控系統(tǒng),容器技術(shù)瓤逼,大數(shù)據(jù)笼吟,微服務(wù),分布式霸旗,區(qū)塊鏈等等下面列舉部分
項目 | 簡介 |
---|---|
Yoke | Yoke 是 Postgres 的高可用集群贷帮,具有自動切換和自動集群恢復(fù)。Postgres冗余/自動故障轉(zhuǎn)移解決方案诱告,提供一個高可用PostgreSQL集群的簡單管理撵枢。 |
Docker | Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中精居,然后發(fā)布到任何流行的 Linux 機(jī)器上锄禽,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制靴姿,相互之間不會有任何接口(類似 iPhone 的 app)沃但。幾乎沒有性能開銷,可以很容易地在機(jī)器和數(shù)據(jù)中心中運行。最重要的是,他們不依賴于任何語言佛吓、框架或包裝系統(tǒng)宵晚。 |
micro | Micro是一個專注于簡化分布式系統(tǒng)開發(fā)的微服務(wù)生態(tài)系統(tǒng)垂攘。可插拔的插件化設(shè)計坝疼,提供強(qiáng)大的可插拔的架構(gòu)來保證基礎(chǔ)組件可以被靈活替換搜贤。 |
hugo | Hugo是由Go語言實現(xiàn)的靜態(tài)網(wǎng)站生成器;簡單钝凶、易用仪芒、高效、易擴(kuò)展耕陷、快速部署掂名;相比于Hexo、Jekyll哟沫,hugo的優(yōu)勢是生成速度極快饺蔑。 |
更多內(nèi)容請參考go語言優(yōu)秀開源項目匯總
推薦閱讀
- 開發(fā)環(huán)境搭建(持續(xù)更新中)
- RabbitMQ系列筆記介紹篇
- Golang中Modle包的使用
- goriila context深入學(xué)習(xí)筆記
- Go Context深入學(xué)習(xí)筆記
- 基于Nginx和Consul構(gòu)建高可用及自動發(fā)現(xiàn)的Docker服務(wù)架構(gòu)
- 關(guān)于log日志的深入學(xué)習(xí)筆記
本文歡迎轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系作者嗜诀,謝謝猾警!
- 公眾號【常更新】:陌無崖
- GitHub:https://github.com/yuwe1
- CSDN【看心情更新】: https://blog.csdn.net/weixin_40051278
- 博客地址【定期更新】:https://mowuya.cn/