ios - 使用 MongoDB 和 Eve 快速开发 iOS 原型(prototype)?

标签 ios mongodb rest eve

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

由于我总是花费很长时间来配置 SQL 数据库并编写服务器应用程序(RESTful API),因此我开始研究 NoSQL 数据库的可能性及其与远程服务器通信/同步的预构建可能性。 据我对这些事情的理解,这将明显减少服务器部分所需的工作。

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

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

最佳答案

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

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

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

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

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

对于要扔掉的 PoC,请使用能快速完成工作的东西。如果更多,那么您需要考虑如何合适。

夏娃有一个小issues列表,经常更新,并且有良好的文档。最终决定取决于您。

关于ios - 使用 MongoDB 和 Eve 快速开发 iOS 原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21429131/

相关文章:

ios - Swinject 中不同 ViewController 的依赖注入(inject)不一致,发布 Swift 3.0 更新 : why?

ios - 应用程序将不再编译

ios - UIViewController 在 iPad 上处理方向 iOS 6.0

MongoDB 删除 MapReduce 集合

c# - 枚举 C# DalSoft.RestClient 和/或 Json.net 中的 JSON 属性

IOS __connection_block_invoke_2 Swift 2.0 xCode 7.1 El Capitan 10.1

java - 如何在JAVA中使用MongoDB而不需要为嵌套的json多次编写代码片段?

rest - OAuth2 "Client Credentials Flow"的浏览器测试工具

api - 一个很好的名人名言 API

node.js - 使用 mongodb 汇总所有文档