服务器/客户端结构服务器实现方面的build议iOS应用程序开发?

必须有很多应用程序被devise为与服务器通信。 我的问题只是关于安装在iOS设备+服务器端服务交互的应用程序。 networking应用程序不是我所说的,而且根本没有涉及这个讨论的网页。 典型的例子是像Instagram和Twitter这样的应用程序,其中应用程序和服务器之间交换的大部分信息只是像String,Image和Integers(用JSON或XML包装)的数据,不需要网页展示。

我的问题是:如果你是一个独立的应用程序开发人员,而且你正在从头开始devise这样的应用程序,而没有任何现有的网站API,数据库结构或应用程序(所以你不受任何现有的API或数据库结构或应用程序协议的限制)什么将是最有效的方法?

服务器端需要做的是:

  • 接收App发送的数据;
  • 用devise的逻辑处理数据;
  • 与数据库交互(如MySQL);
  • 做必要的数据挖掘和分析 – 这可能是一个不断运行的服务或应用程序客户端请求的一次性任务;
  • 根据要求或自发地将数据发送回应用程序;
  • 在不同的应用程序客户端之间交换或广播数据(即:聊天室群组和对等消息);

据我所知,有3个明显的选项来实现服务器端:

  • PHP
  • python
  • Ruby on Rails

(请随时添加更多选项)

我的问题是:

  • 哪一个是实现服务器端最合适的select?
  • 如果应用程序正在密集关注自然人类语言/文本search,分析和数据挖掘,哪一个是最佳select? 我听说Python在这方面做得很好。
  • 有关数据库select的任何build议? 我现在正在使用MySQL,而且我发现它对我的目的来说非常强大,我听说Twitter正在转向Cassandra。 这会太难以开始吗?
  • 对于服务器端来说,如果你需要build立一个服务器pipe理界面,作为pipe理员来pipe理和监视社区,会员,数据等,是否有任何现有的解决scheme,框架或工具呢? 什么是最有效的方法?
  • 如果一个新的程序员没有经验的话,你build议他/她从哪一个开始呢?
  • 在这种情况下,我们可以从中学习到服务器端有没有很好的参考资料或示例代码?

我知道在Stackoverflow上有很多非常有经验的专家,但是我看到更多刚进入iOS开发领域的新手,没有太多的服务器/数据库编程经验知识。 我希望这个线程可以帮助那些想要devise一个服务器/客户端结构的应用程序,但不知道从哪里开始。

PS:我会不断更新这个问题的线程,并添加我的调查结果关于这个话题,以帮助所有其他用户在stackoverflow。 :-)请尽量让你的答案翔实,易于理解和build设性的。 我想这个主题的大部分读者将是这个伟大社区的新成员。

您确定要花时间和金钱来开发自己的服务器并开发自己的API吗? 现在有很多mBaaS(移动后端即服务)提供商,例如QuickBlox , Parse , StackMob ,它们已经可以使用,并且有很好的定制对象API和一些预定义的模块。 他们有很大的配额很好的自由计划。 其中一些QuickBlox有企业计划 – 所以你可以购买许可证和他们的服务器团队更新服务器为您的目的。

所以,我build议不要开发你的服务器,并考虑mBaaS市场。

关于你的问题 – 我可以推荐看一下QuickBlox自定义对象代码示例以及自定义对象API 。 自定义对象模块提供了灵活性来定义您需要的任何数据结构(模式)。 架构在pipe理面板中定义。 架构称为类,并包含字段名称及其types。 我认为这是你所需要的。

  • 哪一个是实现服务器端最合适的select?

那么这取决于你所知道的,有理由select其他的

  • 如果应用程序正在密集关注自然人类语言/文本search,分析和数据挖掘,哪一个是最佳select? 我听说Python在这方面做得不错。

这会反映出你的第一个问题,你select你需要的语言。 因此,如果python更容易,然后select一个。

  • 有关数据库select的任何build议? 我现在正在使用MySQL,而且我发现它对我的目的来说非常强大,我听说Twitter正在转向Cassandra。 这会太难以开始吗?

再也不是一个很容易回答的问题,因为这一切都与需求有关。 但是任何SQL服务器都可以。 Cassandra是为了“可扩展性和高可用性而不牺牲性能”的意思。 你认为你的web服务会得到很多的请求,那么它可能是一个select考虑。

  • 对于服务器端来说,如果你需要build立一个服务器pipe理界面,作为pipe理员来pipe理和监视社区,会员,数据等,是否有任何现有的解决scheme,框架或工具呢? 什么是最有效的方法?

当你select一个SQL服务器和服务器语言时,这只会被回答。

  • 如果一个新的程序员没有他们的经验,你build议他/她开始的是哪一个?

从简单的事情开始,你真的在​​这里出去。

  • 在这种情况下,我们可以从中学习到服务器端有没有很好的参考资料或示例代码?

显然有一些,但你应该从小处着手,从那里开始工作。


Twitter最初是作为Rub on Rails应用程序开发的,并且正在研究可扩展性和可用性,而ruby并不是真正的好东西(这是我个人的观点)。 或者看看Facebook他们已经写了一个PHP的C编译器,使PHP运行速度更快。

我可以说的唯一的事情就是启动代码,当你的应用程序起飞,然后解决一些性能问题。

而且,既然你声明你是编程的新手,不要多咬一口就可以咀嚼。

这是一个巨大的问题,我不认为有一个最好的答案。 这主要取决于你在乎的是什么,比如开发过程有多快,执行多么容易。

哪一个很受欢迎,哪一个很酷,我不认为这是真的。

在我个人看来,我擅长ASP.NET,而且我可以轻松地获得Windows服务器,所以我将从一个ASP.NET服务开始提供数据。

而且,要继续。