09.13 Go適合做什麼?為何這麼多人偏愛Go語言?

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

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

到現在Go的開發已經是完全開放的,並且擁有一個活躍的社區。

Go適合做什麼?為何這麼多人偏愛Go語言?

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

1、Google

這個不用多做介紹,作為開發Go語言的公司,當仁不讓。Google基於Go有很多優秀的項目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更多Google的Go開源項目。

2、Facebook

Facebook也在用,為此他們還專門在Github上建立了一個開源組織facebookgo,大家可以通過 https://github.com/facebookgo 訪問查看facebook開源的項目,比如著名的是平滑升級的grace。

3、騰訊

騰訊作為國內的大公司,還是敢於嘗試的,尤其是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

5、阿里

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

6、京東

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

7、小米

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

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

8、360

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

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

Go適合做什麼?為何這麼多人偏愛Go語言?

為什麼這麼多人偏愛Go語言:

除了上述業內大牛之外,Go語言也頗受國內很多雲創業公司的喜愛,例如DaoCloud。那他們為什麼會選擇Go呢?與其他語言的應用相比,它有什麼優點呢?

1、學習曲線

它包含了類C語法、GC內置和工程工具。這一點非常重要,因為Go語言容易學習,所以一個普通的大學生花一個星期就能寫出來可以上手的、高性能的應用。在國內大家都追求快,這也是為什麼國內Go流行的原因之一。

2、效率

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

3、出身名門、血統純正

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

Go適合做什麼?為何這麼多人偏愛Go語言?

Go強大的開發團隊

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

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

5、強大的標準庫

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

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

我相信這一點是很多人選擇Go的最大理由,因為部署太方便了,所以現在也有很多人用Go開發運維程序。

7、簡單的併發

它包含了降低心智的併發和簡易的數據同步,我覺得這是Go最大的特色。之所以寫正確的併發、容錯和可擴展的程序如此之難,是因為我們用了錯誤的工具和錯誤的抽象,Go可以說這一塊做的相當簡單。

8、穩定性

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 安裝

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

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

Go適合做什麼?為何這麼多人偏愛Go語言?

3、將 /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:\\Go\\bin 目錄添加到 PATH 環境變量中。添加後你需要重啟命令窗口才能生效。

安裝測試

創建工作目錄 C:\\>Go_WorkSpace。

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

Go適合做什麼?為何這麼多人偏愛Go語言?

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

Go適合做什麼?為何這麼多人偏愛Go語言?

更多編程資訊、乾貨持續更新中~


分享到:


相關文章: