【问题标题】:Using MongoDB and Eve to rapidly develop an iOS Prototype?使用 MongoDB 和 Eve 快速开发 iOS Prototype?
【发布时间】:2014-01-29 11:03:20
【问题描述】:

我目前正在计划一个新项目,其中涉及一些概念验证原型,以便在真正的应用程序从中发展之前进行测试。 该应用程序将主要是一个 iOS 应用程序,它通过 WebService 与远程服务器上的数据库进行通信,这里是非常基本的东西。

由于配置 SQL 数据库和编写服务器应用程序 (RESTful API) 总是需要很长时间,我开始阅读 NoSQL 数据库的可能性以及它们与远程服务器通信/同步的预构建可能性。 就我对这些事情的理解而言,这显然会减少服务器部分所需的工作。

现在我开始阅读 MongoDB 以及 Eve (Python),它扩展了 MongoDB 提供的 HTTP REST API。由于他们的 RESTful API 提供了测试原型所需的一切,我开始问自己,如果我可以从 Eve 的 API 中获得所需的一切,为什么我还要编写自己的 REST API?

使用 Eve 和 MongoDB 的缺点是什么?围绕我的 MongoDB 实例编写自己的 RESTful API 有什么好处?!

【问题讨论】:

    标签: ios mongodb rest eve


    【解决方案1】:

    一般来说,使用预打包的库会在开发周期的早期提供好处,您可以通过不专注于可能使构建概念验证应用程序具有挑战性和耗时的细节和垃圾来快速取得进展。

    如果您只是构建 PoC,那么构建的具体细节通常并不重要,除非您还需要验证架构选择。例如,将一个简单的文档模型与您的 iOS 应用程序连接起来可能很容易,但是在现有框架上添加一层安全性可能很困难(我说的是一般情况)。或者,由于没有对数据模型给予足够的重视,以后在关系数据库中建模数据库变得很困难,或者即使使用在 PoC 中使用的相同技术,它也无法很好地扩展负载下)。

    通过构建或扩展您自己的 Restful API,您可以完全控制整个体验。如今,许多 Web 平台都非常自然地构建了一个 Restful API,以便开发人员可以专注于应用程序逻辑,而不是架构的管道。因此,您可能不需要采用完整的端到端框架解决方案。

    框架通常是固执己见的,通常没有任何官方规范。一旦您将代码移到 PoC 之外,您将需要确定生产系统的风险在哪里。有多少活动部件和小部件?如果出现问题怎么办?你能理解相互作用吗?该平台是否提供支持?这些库是否得到积极维护,其支持列表中的问题是否较长、可解决等?

    如果您以后决定使用其他数据库平台,那么使用像 MongoDb 或 CouchDb 这样的面向文档的数据库所面临的挑战将是技术转移。如果您需要调整,请考虑您的业务逻辑和数据库代码与您使用的各种框架的交织程度。如果您启动 RDBMS,并尝试切换到 Document 数据库,则会出现同样的问题。无论起点如何,在两者之间转换数据模型都可能非常复杂。

    对于要丢弃的 PoC,使用快速完成任务的方法。如果它更多,那么你需要考虑它如何适合。

    Eve 有一个小的issues 列表,经常更新,并且有很好的文档。最终决定权在你。

    【讨论】:

      【解决方案2】:

      [免责声明:我是项目作者。]

      Eve 的一个显着优势是您可以获得许多开箱即用的功能,我相信这使其成为快速原型设计和 PoC 的理想选择。您可以快速启动并运行,只需更新settings.py 即可在一分钟内更改您的 API 架构/行为(如果您在调试模式下运行应用程序,它将在每次保存时重新启动)。您甚至不必创建数据库,因为它会在丢失时为您创建。

      实际上,我们有一个 Heroku 实例可以做到这一点,我们通过使用免费的 MongoHQ 实例(或 MongoLab,目前不确定)作为一次性数据存储(只需根据需要清理数据库,但由于 mongo 的无模式设计,大多数时候我们甚至不需要这样做。)

      不用说,如果您要在生产环境中使用它,请不要在调试模式下运行您的应用程序或让它为您创建数据库;-)

      PS:为了记录,构建 Eve 的全部原因首先是为我们的 iOS/Android 应用程序提供 Web 服务。

      【讨论】:

      • 问题是,当我接触到 Eve-Python 时,我想知道为什么人们仍然编写自己的 REST API,因为这通常是一大堆工作。在我看到许多不同的选项(如 Couchbase Lite)之后,我想知道这是否真的是用来这样使用的。非常感谢您清除它。!
      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多