Go適合作什麼?爲什麼這麼多人偏心Go語言?

Go做爲Google2009年推出的語言,其被設計成一門應用於搭載 Web 服務器,存儲集羣或相似用途的巨型中央服務器的系統編程語言。前端

對於高性能分佈式系統領域而言,Go 語言無疑比大多數其它語言有着更高的開發效率。它提供了海量並行的支持,這對於遊戲服務端的開發而言是再好不過了。linux

到如今Go的開發已是徹底開放的,而且擁有一個活躍的社區。ios

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

哪些大公司在使用Go語言:

一、Googlegit

這個不用多作介紹,做爲開發Go語言的公司,當仁不讓。Google基於Go有不少優秀的項目,好比:https://github.com/kubernetes/kubernetes ,你們也能夠在Github上 https://github.com/google/ 查看更多Google的Go開源項目。程序員

二、Facebookgithub

Facebook也在用,爲此他們還專門在Github上創建了一個開源組織facebookgo,你們能夠經過 https://github.com/facebookgo 訪問查看facebook開源的項目,好比著名的是平滑升級的grace。golang

三、騰訊docker

騰訊做爲國內的大公司,仍是勇於嘗試的,尤爲是Docker容器化這一塊,他們在15年已經作了docker萬臺規模的實踐,具體能夠參考http://www.infoq.com/cn/articles/tencent-millions-scale-docker-application-practice數據庫

四、百度編程

目前所知的百度的使用是在運維這邊,是百度運維的一個BFE項目,負責前端流量的接入。他們的負責人在2016年有分享,你們能夠看下這個http://www.infoq.com/cn/presentations/application-of-golang-in-baidu-frontend

五、阿里

阿里巴巴具體的項目不太清楚,不過據說其系統部門、CDN等正在招Go方面的人。

六、京東

京東雲消息推送系統、雲存儲,以及京東商城等都有使用Go作開發。

七、小米

小米對Golang的支持,莫過於運維監控系統的開源,也就是 http://open-falcon.com/

此外,小米互娛、小米商城、小米視頻、小米生態鏈等團隊都在使用Golang。

八、360

360對Golang的使用也很多,一個是開源的日誌搜索系統Poseidon,託管在Github上,https://github.com/Qihoo360/poseidon

還有不少公司咱們在這裏就不一一列舉了,從中咱們也可知道Go語言的受歡迎程度。

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

爲何這麼多人偏心Go語言:

除了上述業內大牛以外,Go語言也頗受國內不少雲創業公司的喜好,例如DaoCloud。那他們爲何會選擇Go呢?與其餘語言的應用相比,它有什麼優勢呢?

一、學習曲線

它包含了類C語法、GC內置和工程工具。這一點很是重要,由於Go語言容易學習,因此一個普通的大學生花一個星期就能寫出來能夠上手的、高性能的應用。在國內你們都追求快,這也是爲何國內Go流行的緣由之一。

二、效率

Go擁有接近C的運行效率和接近PHP的開發效率,這就頗有利的支撐了上面你們追求快速的需求。

三、出身名門、血統純正

之因此說Go出身名門,是由於咱們知道Go語言出自Google公司,這個公司在業界的知名度和實力天然不用多說。Google公司彙集了一批牛人,在各類編程語言稱雄爭霸的局面下推出新的編程語言,天然有它的戰略考慮。並且從Go語言的發展態勢來看,Google對它這個新的寵兒仍是很看重的,Go天然有一個良好的發展前途。咱們看看Go語言的主要創造者,血統純正這點就可見端倪了。

Go適合作什麼?爲什麼這麼多人偏心Go語言?

Go強大的開發團隊

四、自由高效:組合的思想、無侵入式的接口

Go語言能夠說是開發效率和運行效率兩者的完美融合,天生的併發編程支持。Go語言支持當前全部的編程範式,包括過程式編程、面向對象編程以及函數式編程。程序員們能夠各取所需、自由組合、想怎麼玩就怎麼玩。

五、強大的標準庫

這包括互聯網應用、系統編程和網絡編程。Go裏面的標準庫基本上已是很是穩定了,特別是我這裏提到的三個,網絡層、系統層的庫很是實用。

六、部署方便:二進制文件、Copy部署

我相信這一點是不少人選擇Go的最大理由,由於部署太方便了,因此如今也有不少人用Go開發運維程序。

七、簡單的併發

它包含了下降心智的併發和簡易的數據同步,我以爲這是Go最大的特點。之因此寫正確的併發、容錯和可擴展的程序如此之難,是由於咱們用了錯誤的工具和錯誤的抽象,Go能夠說這一塊作的至關簡單。

八、穩定性

Go擁有強大的編譯檢查、嚴格的編碼規範和完整的軟件生命週期工具,具備很強的穩定性,穩定壓倒一切。那麼爲何Go相比於其餘程序會更穩定呢?這是由於Go提供了軟件生命週期(開發、測試、部署、維護等等)的各個環節的工具,如go tool、gofmt、go test。

這裏引用知乎裏一個同窗對Go評論的話:最開始準備上線的時候其實內心挺忐忑,畢竟一旦出現故障,不只黑鍋得本身背,面子也上過不去啊。還好結果蠻漂亮,自上線後沒出現過一次突發性BUG,下降運維難度的同時還減小了機器的負載。我相信這也是大多數人用了Go以後的感言。

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

Go適合作什麼

不少朋友可能知道Go語言的優點在哪,殊不知道Go語言適合用於哪些地方。

其實Go語言主要用做服務器端開發,其定位是用來開發「大型軟件」的,適合於不少程序員一塊兒開發大型軟件,而且開發週期長,支持雲計算的網絡服務。Go語言可以讓程序員快速開發,而且在軟件不斷的增加過程當中,它能讓程序員更容易地進行維護和修改。它融合了傳統編譯型語言的高效性和腳本語言的易用性和富於表達性。

Go語言做爲服務器編程語言,很適合處理日誌、數據打包、虛擬機處理、文件系統、分佈式系統、數據庫代理等;網絡編程方面,Go語言普遍應用於Web應用、API應用、下載應用等;除此以外,Go語言還可用於內存數據庫和雲平臺領域,目前國外不少雲平臺都是採用Go開發。

Go語言的就業前景:

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

Go語言的安裝:

  • 環境安裝:

安裝包下載地址爲:https://golang.org/dl/。

若是打不開可使用這個地址:https://golang.google.cn/dl/。

各個系統對應的包名:

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

  • UNIX/Linux/Mac OS X, 和 FreeBSD 安裝

一、下載源碼包:go1.4.linux-amd64.tar.gz。

二、將下載的源碼包解壓至 /usr/local目錄。

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

三、將 /usr/local/go/bin 目錄添加至PATH環境變量:

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

注意:MAC 系統下你可使用 .pkg 結尾的安裝包直接雙擊來完成安裝,安裝目錄在/usr/local/go/ 下。

  • Windows 系統下安裝

Windows 下可使用 .msi 後綴(在下載列表中能夠找到該文件,如go1.4.2.windows-amd64.msi)的安裝包來安裝。

默認狀況下.msi文件會安裝在 c:Go 目錄下。你能夠將 c:Goin 目錄添加到 PATH 環境變量中。添加後你須要重啓命令窗口才能生效。

安裝測試

建立工做目錄 C:>Go_WorkSpace。

文件名: test.go,代碼以下:

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

使用 go 命令執行以上代碼輸出結果以下:

Go適合作什麼?爲什麼這麼多人偏心Go語言?

 

鏈文