就在我还寻思什么时候 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,或者仅更新数据存储索引配置,这样就可以在上传代码前构建新的索引。它也可以下载应用的日志,以便使用自己的工具分析应用的性能。
有疑问加站长微信联系(非本文作者)