前面我們已經介紹過了Go語言的種種優勢和不足,那麼我們究竟可以使用Go語言來做些什麼呢?
其實Go語言主要用作伺服器端開發,其定位是用來開發“大型軟體”的,適合於需要很多程式設計師一起開發,並且開發週期較長的大型軟體和支援雲端計算的網路服務。
Go語言融合了傳統編譯型語言的高效性和指令碼語言的易用性和富於表達性,不僅提高了專案的開發速度,而且後期維護起來也非常輕鬆。
鑑於Go語言的特點和設計的初衷,從以下幾個方面來分析Go語言擅長的領域:
-
在伺服器程式設計方面,Go語言適合處理紀錄檔、資料打包、虛擬機器處理、檔案系統、分散式系統、資料庫代理等;
-
網路程式設計方面,Go語言廣泛應用於 Web 應用、API 應用、下載應用等;
-
此外,Go語言還可用於記憶體資料庫和雲平台領域,目前國外很多雲平台都是採用 Go 開發。
除了上面介紹到的,Go語言還可以用來開發底層,例如以太坊、超級賬本等都是基於Go語言開發的。
而且對於現在比較流行的區塊鏈技術方面,Go語言也是非常受歡迎的,很多基於區塊鏈的 DApps(去中心化應用)和工具都是用的Go語言來實現的。
下面列舉了一些基於Go語言開發的優秀開源專案:
-
雲端計算基礎設施領域,代表專案:docker、kubernetes、etcd、consul、cloudflare CDN、七牛雲端儲存等。
-
基礎軟體,代表專案:tidb、influxdb、cockroachdb 等。
-
微服務,代表專案:go-kit、micro、monzo bank 的 typhon、bilibili 等。
-
網際網路基礎設施,代表專案:以太坊、hyperledger 等。
總之,Go語言的優勢還是比較多的,比如Go語言的效能非常出色,最關鍵的是在效能強勁的同時還能像直譯語言一樣高效地進行開發。