概覽
Go 為網頁應用程式提供速度、安全性和開發人員友善的工具
Go 旨在讓開發人員能夠快速開發可擴展且安全的網頁應用程式。Go 內建了易於使用、安全且高效能的網頁伺服器,並包含自己的網頁模板庫。Go 對所有最新技術都有極佳的支援,從 HTTP/2,到如 MySQL、MongoDB 和 Elasticsearch 等資料庫,以及包含 TLS 1.3 在內的最新加密標準。得益於 Go 極高的可移植性,Go 網頁應用程式可在 Google App Engine 和 Google Cloud Run 上原生執行(以輕鬆實現擴展),也可在任何環境、雲端或作業系統上運行。
主要優勢
以破紀錄的速度進行跨平台部署
對於企業而言,Go 是快速跨平台部署的首選。憑藉其 Goroutines、原生編譯以及基於 URI 的套件命名空間,Go 程式碼可編譯成單一且精簡的二進位檔案,且完全無相依性,使其執行速度非常快。
利用 Go 開箱即用的高效能,輕鬆實現擴展
Hexact Inc. 的共同創辦人兼技術長 Tigran Bayburtsyan 總結了其公司轉向 Go 的五個關鍵原因:
-
編譯為單一二進位檔案 —「透過靜態連結,Go 實際上會根據作業系統類型和架構,將所有相依函式庫和模組合併為一個單一的二進位檔案。」
-
靜態型別系統 —「對於大型應用程式而言,型別系統真的非常重要。」
-
高效能 —「由於其併發模型和 CPU 可擴展性,Go 的表現更好。每當我們需要處理內部請求時,我們都會使用獨立的 Goroutines 來執行,這比 Python 執行緒的資源成本低了 10 倍。」
-
無需網頁框架 —「在大多數情況下,你真的不需要任何第三方函式庫。」
-
優異的 IDE 支援與偵錯能力 —「在將所有專案重寫為 Go 之後,我們的程式碼量比以前減少了 64%。」
精選使用者
| 客戶 | 簡介 | 使用 Go 的專案 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
開始使用
關於 Go 網頁開發的書籍
-
Web Development with Go
-
Go Web Programming
-
Web Development Cookbook: Build full-stack web applications with Go
-
Building RESTful Web services with Go
-
Mastering Go Web Services
網頁框架
-
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
網頁函式庫
-
markbates/goth
網頁應用程式的身份驗證
-
jinzhu/gorm
Go 的 ORM 函式庫
-
dgrijalva/jwt-go
JSON Web Tokens 的 Go 實作
課程
- 學習使用 Go 建立網頁應用程式,付費線上課程
專案
- gopherjs,一個將 Go 編譯為 JavaScript 的編譯器,允許開發人員使用 Go 編寫前端程式碼,並可在所有瀏覽器中執行。
- Hugo,全球最快的網站建構框架
- Mattermost,一套靈活的開源訊息傳遞平台,可實現安全的團隊協作
- Caddy,一套功能強大、符合企業需求、以 Go 編寫並具備自動 HTTPS 功能的開源網頁伺服器