Go Wiki:LearnServerProgramming
此頁面連結到有關學習使用 Go 進行伺服器程式設計的資源,包括網路服務和行動裝置後端。這些項目依主題整理成各個區段。
入門
- 閱讀 使用 Go 標準函式庫撰寫網路應用程式
- 閱讀 使用 Go 建立網路應用程式,作者為 BeeGo 網路架構 的作者
- 閱讀 Go 網路應用程式反教科書
- 閱讀 使用 Go 建立網路應用程式,作者為 Negroni 和 Martini 網路伺服器工具組的作者。在閱讀這本書之前,請先學習絕對的基礎知識。
- 閱讀 在 Go 中建立您自己的網路架構,共 5 個部分。
- 觀看 Go:優雅成長的程式碼
- 從 Sourcegraph 團隊下載 完整運作的 3 層應用程式範例。
中間件
您會看到經常討論的主題是「中間件」。如果您不熟悉這個術語,我們建議您先閱讀以下幾篇文章
- Go 中間件:最佳實務範例 2014-11-13
- 自訂處理常式 第 1 部分 - 避免使用全域變數、第 2 部分 - 錯誤處理 2014-07-16
- 建立和使用 HTTP 中間件 2014-10-21
- 在 Go 中撰寫 HTTP 中間件 2013-10-09
工具組和架構
在您決定採用第三方網路架構或工具組之前,請記住 Go 標準函式庫提供了建立精緻、現代化網路應用程式的所需所有工具。為了符合 Go 重視簡潔性和可組合性,而非複雜性和魔術的原則,我們建議您看看標準函式庫能帶您走多遠。
如果您決定需要更多基礎架構,請從查看一些可用的工具組和函式庫開始。
工具組與函式庫與微型架構
- Gorilla 工具組
- Negroni 工具組 - Go 的慣用語 HTTP 中介軟體
- Echo 架構 - 快速且不花俏
- Goji 網路微型架構
- Go Craft 中介軟體
- Go RESTful - RESTful 服務 API 工具組
- limiter - Go 的簡單速率限制中介軟體
- Kite 微服務架構
- Alice - Go 的無痛中介軟體串接
- YAM - 另一個 Mux
- Bone - 快速 HTTP 路由器
架構
- BeeGo 架構
- Frodo - 受到 Laravel(php)、Slim(php) 和 ExpressJS(node.js) 啟發的 Go 迷你網路架構
- GinGonic
- Macaron - Go 中高生產力、模組化的網路架構。
- Revel 網路架構
- Ringo - 受到 Rails、Gin 啟發的輕量級 MVC 網路架構。
- Utron - 網路應用程式的輕量級 MVC 架構。
- Iris - 網路應用程式的快速 MVC 架構。
通訊
- net/http 套件提供 HTTP 伺服器和客戶端實作。
- 套件 encoding/json 實作 RFC 4627 中定義的 JSON 物件編碼與解碼。
- 套件 net/rpc 提供存取物件在網路或其他 I/O 連線中匯出的方法。
- 套件 os/exec 執行外部指令。
簡報
- 套件 text/template 實作資料驅動的範本,用於產生文字輸出。
- 套件 html/template 實作資料驅動的範本,用於產生防範程式碼注入的 HTML 輸出。
分析與效能
- 閱讀 分析 Go 程式
- 閱讀 陣列、切片(和字串):『附加』的機制
- 閱讀 常見問題集 (FAQ),特別是
- 套件 bufio 實作緩衝 I/O。
- 套件 runtime/pprof 以 pprof 視覺化工具預期的格式撰寫執行時期分析資料。
- 套件 net/http/pprof 透過其 HTTP 伺服器提供 pprof 視覺化工具預期的格式的執行時期分析資料。
追蹤、監控、記錄與組態
- 套件 expvar 提供標準化介面給公開變數,例如伺服器中的運算計數器。
- 套件 flag 實作了命令列旗標剖析。
- 套件 log 實作了一個簡單的記錄套件。
- 套件 glog 實作了類似 Google 內部 C++ INFO/ERROR/V 設定的記錄。
儲存
- 套件 os 提供了一個與平台無關的介面,用於操作系統功能。
- 套件 path/filepath 實作了用於處理檔案名稱路徑的公用程式,其方式與目標作業系統定義的檔案路徑相容。
- 套件 database/sql 提供了一個圍繞 SQL(或類似 SQL)資料庫的通用介面。
平台
Google Cloud Platform
- 閱讀 Go、Cloud Endpoints 和 App Engine,第 1 部分、第 2 部分
- 閱讀 Google Cloud Platform:Go 執行時期環境
- 觀看 Go 和 Google Cloud Platform
- 閱讀 App Engine 上的 Go:工具、測試和並行
- 取得 Google Cloud Platform Go 函式庫
- 閱讀 使用 Docker 部署 Go 伺服器
- 搜尋 Google Cloud 或 gcloud 的套件
- 搜尋 App Engine 或 GAE 的套件
Amazon Web Services
- aws-sdk-go 儲存庫提供自動產生的 Go 中的 AWS 客戶端。它有 Amazon 的官方支援。
- 套件 goamz 讓 Go 程式可以與 Amazon Web Services 互動。
- 搜尋 AWS 或 Amazon 服務 的套件
Microsoft Azure
- Microsoft OpenTech 的 azure-sdk-for-go 提供一個 Golang 套件,可以輕鬆使用和管理 Microsoft Azure 服務。
- 搜尋 Azure 的套件
Openstack / Rackspace
- Gophercloud 是用於處理 OpenStack 雲端的 Golang SDK。
- 搜尋 Openstack 或 Rackspace 的套件
IBM BlueMix
此內容是 Go Wiki 的一部分。