Go 和網路開發

概觀

Go 提供速度、安全性以及開發人員特別愛用的網路應用程式工具

Go 的設計目標,就是讓開發人員可以快速地開發出可擴充又安全的網路應用程式。Go 內建容易使用、安全又高效能的網路伺服器,而且還包含自己的網路範本函式庫。Go 針對最新技術提供卓越的支援,從 HTTP/2、資料庫,例如 MySQLMongoDBElasticsearch,到最新的加密標準,例如 TLS 1.3。Go 網路應用程式原生執行於 Google App EngineGoogle Cloud Run(用於簡易擴充),或是透過 Go 的高移植性執行於任何環境、雲端或作業系統中。

主要優勢

跨平台部署速度驚人

對於企業而言,Go 是用於提供快速跨平台部署的首選項目。它擁有 goroutine、原生的編譯器,以及基於 URI 的套件命名空間,讓 Go 程式碼編譯成一個小而單一的二進位檔(無依賴關係),且運行速度非常快。

善用 Go 的效能表現,輕鬆擴充

Tigran Bayburtsyan,Hexact Inc. 的共同創辦人兼技術長,他總結了公司轉用 Go 的五個主要原因

  • 編譯成單一二進位檔 —「使用靜態連結功能,Go 會根據作業系統類型和架構,將所有依賴函式庫和模組組合成一個單一的二進位檔檔案。」

  • 靜態類型系統 —「類型系統對於大型應用程式來說非常重要。」

  • 效能 —「Go 的效能表現較佳,這是因為它的並發模型和 CPU 可擴充性。當我們需要處理一些內部要求時,我們會使用獨立的 Goroutine 來處理,在資源量方面比 Python 執行緒少用了 10 倍。」

  • 不需要 Web 架構 —「在大部分情況下,你真的不需要任何第三方函式庫。」

  • 優秀的 IDE 支援和偵錯功能 —「將所有專案改寫成 Go 之後,我們的程式碼減少了 64%。」

客戶 簡要說明 使用 Go 的專案
Caddy Caddy Caddy Caddy 2 是一個強大的、支援企業、以 Go 編寫的開源 Web 伺服器,具有自動 HTTPS。與以 C 編寫的伺服器相比,Caddy 具有更佳的記憶體安全性。一個由 Go 標準函式庫提供的強化 TLS 堆疊,服務於大部分的網路流量。
Cloudflare Cloudflare Cloudflare Cloudflare 加速並保護網路上數百萬的網站、API、SaaS 服務和其他資源。「Go 是 Cloudflare 服務的核心,包括處理高延遲 HTTP 連線的壓縮功能、我們的整個 DNS 基礎架構、SSL、負載測試等等。」
gov.uk gov.uk gov.uk Go 語言的簡潔和安全性,非常符合英國政府的 HTTP 基礎架構,而且一些使用出色的 net/http 套件進行的簡短實驗,讓網頁開發人員確信他們走上了正確的道路。「特別是,Go 的並發模型讓建構效能優異、以 I/O 為基礎的應用程式變得異常容易。」

開始使用

Go 網路開發書籍

  • Echo

    效能高、可擴充,且最簡化的 Go 網路架構

  • Flamingo

    一個快速的開放原始碼架構,基於 Go,擁有乾淨且可擴充的架構

  • Gin

    使用 Go 編寫,且具備類似 Martini 的 API 的網路架構。

  • Gorilla

    針對 Go 程式語言的網路工具包。

檢視更多
  • net/http

    標準函式庫 HTTP 套件

  • julienschmidt/httprouter

    一個輕量且效能高的 HTTP 請求路由器

  • gorilla/mux

    一個強大的 HTTP 路由器和 URL 對應器,用於使用 🦍 建立 Go 網路伺服器

  • Chi

    一個輕量、符合慣例且可組態的路由器,用於建立 Go HTTP 服務。

檢視更多
檢視更多
  • database/sql

    一個標準函式庫介面,具有對 MySQL、Postgres、Oracle、MS SQL、BigQuery 和大部分 SQL 資料庫的驅動程式支援

  • mongo-driver/mongo

    MongoDB 支援的 Go 驅動程式

  • elastic/go-elasticsearch

    一個針對 Go 的 Elasticsearch 用戶端

  • GORM

    一個針對 Go 的 ORM 函式庫

  • Bleve

    針對 Go 的全文檢索和索引

  • CockroachDB

    資料庫的演變,專為雲端設計,提供可復原、一致且廣泛分佈的 SQL

檢視更多
檢視更多
  • gopherjs

    從 Go 編譯到 JavaScript 的編譯器,讓開發人員可以用 Go 編寫所有瀏覽器都會執行的前端程式碼。

檢視更多

課程

專案

  • gopherjs從 Go 編譯到 JavaScript 的編譯器,讓開發人員可以用 Go 編寫所有瀏覽器都會執行的前端程式碼。
  • Hugo打造網站最快的框架
  • Mattermost彈性且開放原始碼的訊息傳遞平台,支援安全的團隊合作
  • Caddy由 Go 編寫,功能強大、專為企業打造且開放原始碼的網路伺服器,支援自動 HTTPS