Go 語言用於 Web 開發

概覽

Go 為 Web 應用程式提供速度、安全性和開發者友好型工具

Go 旨在幫助開發者快速開發可擴充套件且安全的 Web 應用程式。Go 自帶易於使用、安全且高效能的 Web 伺服器,幷包含其自己的 Web 模板庫。Go 對所有最新技術都有出色的支援,從 HTTP/2,到 MySQLMongoDBElasticsearch 等資料庫,再到包括 TLS 1.3 在內的最新加密標準。由於 Go 極強的可移植性,Go Web 應用程式可在 Google App EngineGoogle Cloud Run(易於擴充套件)上原生執行,或在任何環境、雲平臺或作業系統上執行。

主要優點

以創紀錄的速度跨平臺部署

對於企業來說,Go 因其提供快速跨平臺部署而備受青睞。憑藉其 Goroutine、原生編譯和基於 URI 的包名稱空間,Go 程式碼編譯成一個單一、小巧的二進位制檔案——零依賴——使其非常快速。

利用 Go 開箱即用的效能,輕鬆擴充套件

Hexact Inc. 聯合創始人兼首席技術官 Tigran Bayburtsyan 總結了其公司轉向 Go 的五個主要原因

  • 編譯成單個二進位制檔案 — “透過靜態連結,Go 實際上將所有依賴庫和模組組合成一個基於作業系統型別和架構的單個二進位制檔案。”

  • 靜態型別系統 — “型別系統對於大型應用程式非常重要。”

  • 效能 — “Go 因其併發模型和 CPU 可擴充套件性而表現更佳。每當我們需要處理一些內部請求時,我們都使用獨立的 Goroutine 來完成,這些 Goroutine 的資源消耗比 Python 執行緒便宜 10 倍。”

  • 無需 Web 框架 — “在大多數情況下,你確實不需要任何第三方庫。”

  • 出色的 IDE 支援和除錯 — “將所有專案重寫為 Go 後,我們的程式碼量比以前減少了 64%。”

客戶 簡介 使用 Go 的專案
Caddy Caddy Caddy Caddy 2 是一個功能強大、企業級、開源的 Web 伺服器,具有用 Go 編寫的自動 HTTPS 功能。Caddy 比用 C 編寫的伺服器提供更好的記憶體安全性。由 Go 標準庫提供支援的強化 TLS 堆疊為所有網際網路流量的很大一部分提供服務。
Cloudflare Cloudflare Cloudflare Cloudflare 加快並保護數百萬個網站、API、SaaS 服務和連線到網際網路的其他資產。“Go 是 Cloudflare 服務的核心,包括處理高延遲 HTTP 連線的壓縮、我們的整個 DNS 基礎設施、SSL、負載測試等等。”
gov.uk gov.uk gov.uk Go 語言的簡潔性和安全性非常適合英國政府的 HTTP 基礎設施,並且對出色的 net/http 包進行的一些簡短實驗使 Web 開發者相信他們走在正確的道路上。“特別是,Go 的併發模型使得構建高效能的 I/O 密集型應用程式變得異常容易。”

開始使用

關於 Web 開發的 Go 書籍

  • Echo

    一個高效能、可擴充套件、極簡的 Go Web 框架

  • Flamingo

    一個基於 Go 的快速開源框架,具有清晰且可擴充套件的架構

  • Gin

    一個用 Go 編寫的 Web 框架,具有類似 Martini 的 API。

  • Gorilla

    Go 程式語言的 Web 工具包。

檢視更多
  • net/http

    一個標準庫 HTTP 包

  • julienschmidt/httprouter

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

  • gorilla/mux

    一個功能強大的 HTTP 路由器和 URL 匹配器,用於使用 🦍 構建 Go Web 伺服器

  • 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,一個功能強大、企業級、開源的 Web 伺服器,具有用 Go 編寫的自動 HTTPS 功能