這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
就在我還尋思什麼時候 Google 會在 NDK 裡加入 Go 支援的時候,冷不丁的,Google 發力了。App Engine 支援 Go 了。下面是來自官方文檔的概述。
————————翻譯分割線————————
App Engine Go 概述
歡迎來到用於 Go 的 Google App Engine!實驗性質
利用 App Engine,可以使用 Go 程式設計語言構建 Web 應用程式。Go 應用運行在 Google 的可伸縮的基礎平台上,並使用大規模的持久化儲存和服務。
Go 運行時環境
Go SDK 提供了與標準 Go http 包相似的介面;編寫 Go App Engine 應用與編寫獨立 Go Web 服務器類似。
Go 的運行時環境使用了 Go release r57.1。SDK 包含了 Go 編譯器和標準庫,因此它無須額外的依賴。與 Java 和 Python 環境類似,並不是所有的標準庫的功能都可以在沙箱中使用。例如,嘗試開啟一個通訊端或向檔案寫入都會返回 os.EINVAL 錯誤。
SDK 包含了自動構建服務來編譯應用,因此無須自行包含編譯器。同時,類似 Python SDK——當修改了原始碼以後,應用會自動重新構建。
App Engine 的 Go 運行時環境提供了完整的 goroutine 支援,但並不是並存執行的:goroutine 在一個系統線程上調度。這個單線程的限制在未來的版本中可能會被移除。
Go 應用運行在一個有著簡化庫的安全“沙箱”環境中。例如,應用不能將資料寫入本地檔案系統或者隨意建立網路連接。作為代替,應用使用 App Engine 提供的可伸縮的服務來儲存資料或通過 Internet 進行通訊。
參閱運行時環境瞭解更多資訊。
資料存放區和服務
應用可以使用 App Engine 資料存放區實現可信的、可伸縮的持久化的資料存放區。Go 資料存放區 API 提供了存取 Go 資料結構的原子語義。
App Engine Memcache 提供了快速、臨時性分布式儲存,用於快取資料儲存查詢和計算的結果。
應用使用 URL Fetch 服務通過 Web 存取資源,使用 HTTP 和 HTTPS 協議與其他主機通訊。
應用可以使用 Google 帳號進行身分識別驗證。使用者帳號的建立和登入由 Google 帳號負責,而已經擁有 Google 帳號的使用者(諸如 GMail 帳號之類的)可以在你的應用中使用其帳號。應用可以檢測到目前使用者已經登入,並且可以訪問使用者的電子郵件地址。
工具
App Engine Go SDK 使用來自 Python SDK 的工具進行應用的測試和上傳應用檔案。
程式開發伺服器在本地電腦上運行應用以便測試。該伺服器類比了 App Engine 資料存放區、服務和沙箱限制。程式開發伺服器同樣可以基於測試,產生資料存放區索引的配置,以便提升查詢效能。
一個叫做 appcfg.py 的有著多種用途的工具,處理所有將應用運行於 App Engine 的命令列互動。工具 appcfg.py 可以上傳應用到 App Engine,或者僅更新資料存放區索引配置,這樣就可以在上傳代碼前構建新的索引。它也可以下載應用的日誌,以便使用自己的工具分析應用的效能。