google-app-engine - 在 Go 中合并独立的 webapp 和 GAE

标签 google-app-engine go

我正在开发一个非常简单的网络应用程序,它是用 Go 语言编写的。 我有一个独立版本,现在将它移植到 GAE。似乎有非常小的变化,主要是关于数据存储 API(在独立版本中我只需要文件)。 我还需要包含 appengine 包并使用 init() 而不是 main()。

有什么简单的方法可以合并两个版本吗?由于 Go 中没有预处理器,看来我必须为独立版本编写一个与 GAE 兼容的 API,并将此模拟模块用于独立构建,并为 GAE 版本使用真实 API。但这对我来说听起来有点矫枉过正。

另一个问题是 GAE 可能使用旧的 Go 版本(例如,现在最近的 Go 版本使用新的模板包,但 GAE 使用旧的,并且它们不兼容)。那么,是否有任何更改来处理构建时或运行时的此类差异?

谢谢, 哔叽

UPD:现在 GAE 使用相同的 Go 版本 (r60) 作为稳定的独立编译器,所以抽象级别现在非常简单。

最佳答案

从广义上讲,使用抽象。为持久化提供接口(interface),并为此编写两种实现,一种基于数据存储,一种基于本地文件。然后,为每个平台编写一个单独的 main/init 模块,它实例化适当的持久化接口(interface),并将其传递给您的主应用程序以供使用。

关于google-app-engine - 在 Go 中合并独立的 webapp 和 GAE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545243/

相关文章:

Goroutine 在调用函数返回时终止

java - 谷歌驱动器文件: com. google.api.client.http.HttpHeaders.getAuthenticateAsList

java - IllegalArgumentException - key 不完整 - Objectify

java - 如何在 google app engine 上运行 cron 作业 45 分钟后?

可调用自身的Golang模板FuncMap

arrays - Go 中的多维 slice

node.js - 分析应用程序的 App Engine 与 Node Js 成本

java - 如何从当前项目引用另一个Java项目?

go - 任何其他因素是否会导致 google api 响应 "403: API hasn' t 已被使用”

go - 无法在JetBrains的GoLand中获取大量代码