400-700-1307

Go語言做后端有哪些優勢?

2019-03-28 15:17
GO語言漫談
簡單高效、高并發、跨平臺
 
簡單高效: Go語言作為后起之秀,在語言層面具有語法簡潔、執行效率高(底層語言)的特點;相比之下,Java和Python、PHP都顯得低效,C++則太過麻煩,而Go則可以做到簡單與高效兼顧;

高并發:Go語言是主打并發、為并發而生的,其出發點即是瞄準大數據+云計算時代背景下的高并發、分布式應用場景;

跨平臺:可以在不同平臺直接編譯生成可執行程序,基礎內存占用很少,小應用占用幾M大型應用占用個幾十M就能很好運行,這使得golang可以在樹莓派之類的小設備上很好的運行,這一點表現比java要好的多。

容器化、分布式、微服務化是服務端發展的潮流,在這幾個方向上:

容器化:容器領域Go語言是絕對的霸主,大家所熟知的Docker和Kubernets(K8S)就是使用Go語言開發的;

分布式:最好的例證就是以太坊,因為區塊鏈即分布式賬本;

微服務:Go語言支持微服務的最好例證是今日頭條,今日頭條當前后端服務超過80%的流量是跑在 Go 構建的服務上。微服務數量超過100個,高峰 QPS 超過700萬,日處理請求量超過3000億,可能是業內最大規模的Go應用。

Go語言成功案例

01.Docker(容器)
到現在,Docker幾乎是Go再難找到也難以復制的一個成功案例。Docker項目在2014年9月份就拿到了C輪4000萬美元融資,版本迭代速度超快,目前從GitHub看到已有78個版本,而它僅僅是再2013年初才正式開始的一個項目而已。

目前,國內Docker技術推廣也進行的如火如荼,比如 Docker中文社區,CSDN也建立了 Docker專區。

Docker團隊之所以喜歡用Go語言,主要是Go具有強大的標準庫、全開發環境、跨平臺構建的能力。


02.Kubernetes(容器)
Kubernetes是2014年夏天Google推出的Kubernetes,基于Docker,其目的是讓用戶通過Kubernetes集群來進行云端容器集群的管理,而無需用戶進行復雜的設置工作。

系統會自動選取合適的工作節點來執行具體的容器集群調度處理工作。其核心概念是Container Pod(容器倉)。


03.Etcd & Fleet(分布式數據庫)
etcd是由CoreOS開發并維護鍵值存儲系統,它使用Go語言編寫,并通過Raft一致性算法處理日志復制以保證強一致性。目前,Google的容器集群管理系統Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都廣泛使用了etcd。

Fleet則是一個分布式的初始化系統。它們之所以選擇使用Go語言,則是因為Go語言對跨平臺的良好支持,以及其背后的強大社區。

04.Deis(云服務平臺)
Deis是一個基于Docker和CoreOS的開源PaaS平臺,旨在讓部屬和管理服務器上的應用變得輕松容易。它可以運行在AWS、GCE以及Openstack平臺下。


05.Flynn(云服務平臺)
Flynn是一個使用Go語言編寫的開源PaaS平臺,可自動構建部署任何應用到Docker容器集群上運行。Flynn項目受到Y Combinator的支持,目前仍在開發中,被稱為是下一代的開源PaaS平臺。

06.Lime(桌面應用)
相對上面的幾款Go語言在云端和服務器端之外,Lime則顯得比較特殊。Lime則是一款用Go語言寫的桌面編輯器程序,被看做是著名編輯器Sublime Text的開源實現。

07.Revel(Web框架)
Revel是一個高生產力的Go語言Web框架。Revel框架支持熱編譯,當編輯、保存和刷新源碼時,Revel會自動編譯代碼和模板;全棧特性,支持路由、參數解析、緩存、測試、國際化等功能。

08.
InfluxDB(分布式數據庫)
一個Go語音編寫的開源分布式的時序、事件和指標數據庫,無需外部依賴。其設計目標是實現分布式和水平伸縮擴展。

09.
Syncthing(云盤)
一款用Go語言編寫的開源云存儲和同步服務工具,用戶的數據將由自己完全控制,所有的通信全都加密,每個訪問節點都用加密證書驗證。該項目被認為是Dropbox和 BitTorrent Sync的開源替代,Syncthing之所以選擇Go語言,也是出于跨平臺考慮。

10.
Gogs(自助Git服務)
Gogs則是一款由國人無聞( GitHub)開發的自助Git服務項目。Gogs的目標是打造一個最簡單、最快速和最輕松的方式搭建自助Git服務。據作者稱,之所以選擇使用Go語言開發,就是Go允許Gogs可以通過獨立的二進制分發,且對跨平臺有良好支持。

Go后端開發前景

2018年求職市場Go語言工程師需求增長率達到了800%,因此這個職業方向應該是現下最有“錢”途的職業方向了。

以下數據來自拉勾網,可以看出Go語言后臺開發的招聘量是充足的,特別在北上深等一線城市;

 

以帝都為例,Go開發工程師的薪水,在隨機樣本中最低為10K,最高去到60,大面積落在20K-40K區間內

單就語法層面而言,Go語言的難度與Java相仿。


 

開班信息

當前校區

北京校區
  • 北京校區
  • 上海校區
  • 廣州校區
  • 沈陽校區
  • 杭州校區
  • 南京校區
  • 鄭州校區
  • 成都校區
  • 深圳校區
  • 西安校區
  • 蘇州校區
  • 深圳沙井
  • 深圳觀瀾
  • 深圳龍崗
  • 武漢校區
  • 西寧校區
  • 石家莊校區
  • 湖北咸寧
  • 廣東惠州
  • 廣東佛山
  • 濟南校區

                    Copyright © 2007-2019 易第優(北京)科技股份有限公司 版權所有 京ICP備11018177號  京公網安備 11010802026987號