概覽
Go 為 Web 應用程式提供速度、安全性和開發者友好型工具
Go 旨在幫助開發者快速開發可擴充套件且安全的 Web 應用程式。Go 自帶易於使用、安全且高效能的 Web 伺服器,幷包含其自己的 Web 模板庫。Go 對所有最新技術都有出色的支援,從 HTTP/2,到 MySQL、MongoDB 和 Elasticsearch 等資料庫,再到包括 TLS 1.3 在內的最新加密標準。由於 Go 極強的可移植性,Go Web 應用程式可在 Google App Engine 和 Google Cloud Run(易於擴充套件)上原生執行,或在任何環境、雲平臺或作業系統上執行。
主要優點
以創紀錄的速度跨平臺部署
對於企業來說,Go 因其提供快速跨平臺部署而備受青睞。憑藉其 Goroutine、原生編譯和基於 URI 的包名稱空間,Go 程式碼編譯成一個單一、小巧的二進位制檔案——零依賴——使其非常快速。
利用 Go 開箱即用的效能,輕鬆擴充套件
Hexact Inc. 聯合創始人兼首席技術官 Tigran Bayburtsyan 總結了其公司轉向 Go 的五個主要原因
-
編譯成單個二進位制檔案 — “透過靜態連結,Go 實際上將所有依賴庫和模組組合成一個基於作業系統型別和架構的單個二進位制檔案。”
-
靜態型別系統 — “型別系統對於大型應用程式非常重要。”
-
效能 — “Go 因其併發模型和 CPU 可擴充套件性而表現更佳。每當我們需要處理一些內部請求時,我們都使用獨立的 Goroutine 來完成,這些 Goroutine 的資源消耗比 Python 執行緒便宜 10 倍。”
-
無需 Web 框架 — “在大多數情況下,你確實不需要任何第三方庫。”
-
出色的 IDE 支援和除錯 — “將所有專案重寫為 Go 後,我們的程式碼量比以前減少了 64%。”
特色使用者
客戶 | 簡介 | 使用 Go 的專案 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
開始使用
關於 Web 開發的 Go 書籍
Web 框架
-
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
Web 庫
-
markbates/goth
Web 應用程式的身份驗證
-
jinzhu/gorm
一個用於 Go 的 ORM 庫
-
dgrijalva/jwt-go
JSON Web 令牌的 Go 實現
課程
- 學習使用 Go 建立 Web 應用程式,一個付費線上課程
專案
- gopherjs,一個從 Go 到 JavaScript 的編譯器,允許開發者用 Go 編寫前端程式碼,這些程式碼將在所有瀏覽器中執行。
- Hugo,世界上最快的網站構建框架
- Mattermost,一個靈活的開源訊息平臺,可實現安全的團隊協作
- Caddy,一個功能強大、企業級、開源的 Web 伺服器,具有用 Go 編寫的自動 HTTPS 功能