【问题标题】:Advices on server implementation for server/client structure iOS App development?关于服务器/客户端结构 iOS 应用程序开发的服务器实现的建议?
【发布时间】:2012-12-25 21:48:38
【问题描述】:

一定有很多应用程序旨在与服务器通信。我的问题只是关于安装在 iOS 设备上的 App + 服务器端服务交互。 Web app 不是我说的,根本不应该有网页参与这个讨论。典型的例子是像 Instagram 和 Twitter 这样的 App,其中 App 和服务器之间交换的大部分信息只是 String、Image 和 Integers 等数据(包装在 JSON 或 XML 中),不需要网页呈现。

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

服务器端需要做的是:

  • 接收App发送的数据;
  • 用设计好的逻辑处理数据;
  • 与数据库交互(如 MySQL);
  • 进行必要的数据挖掘和分析——这可能是一项持续运行的服务,也可能是 App 客户端请求的一次性任务;
  • 根据请求或自发将数据发送回应用程序;
  • 在不同 App 客户端之间交换或广播数据(即:群聊和点对点消息);

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

  • PHP
  • Python
  • Ruby on Rails

(请随意添加更多选项)

我的问题是:

  • 哪一个是实现服务器端最合适的选择?
  • 如果应用程序专注于自然人类语言/文本搜索、分析和数据挖掘,哪个是最佳选择?我听说 Python 在这方面做得很好。
  • 对数据库选择有什么建议吗?我现在正在使用 MySQL,我发现它对我的目的来说非常强大,我听说 Twitter 正在切换到 Cassandra。开始会不会太难?
  • 对于服务器端,如果你需要搭建一个Server管理界面,让你作为管理员来管理和监控社区、会员、数据等,有没有现成的解决方案,或者框架或者工具呢?什么是最有效的方法?
  • 如果一个新程序员没有任何经验,你建议他/她从哪一个开始?
  • 在这种情况下,我们可以借鉴服务器端的任何好的参考资料或示例代码吗?

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

ps:我将继续更新这个问题线程并添加我在这个主题上的发现,以帮助 stackoverflow 上的所有其他用户。 :-) 请尽量让您的回答内容丰富、易于理解且具有建设性。我想这个线程的大多数读者将是这个伟大社区的新成员。

【问题讨论】:

    标签: iphone ios database client


    【解决方案1】:

    您确定要花费时间和金钱来开发自己的服务器和开发自己的 API 吗? 今天有很多 mBaaS(移动后端即服务)提供商,例如 QuickBloxParseStackMob,它们可以立即使用,并且它们具有出色的自定义对象 API 和一些预定义模块。他们有很棒的免费计划,配额很大。其中一些如 QuickBlox 有企业计划 - 所以你可以购买许可证,他们为你的目的服务团队更新服务器。

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

    关于您的问题 - 我建议您查看 QuickBlox Custom Objects code sampleCustom Objects API。自定义对象模块提供了定义您需要的任何数据结构(模式)的灵活性。架构在管理面板中定义。该架构称为 Class 并包含字段名称及其类型。我认为这是您需要的。

    【讨论】:

      【解决方案2】:
      • 哪一种是最适合实现服务器的选择 一边?

      这取决于你所知道的,有理由选择另一个

      • 如果应用集中关注自然人类语言/文本 搜索、分析和数据挖掘,哪一个是最佳选择?我 听说 Python 在这方面做得很好。

      这将反映您的第一个问题,您可以根据需要选择语言。因此,如果 python 让它变得更容易,那就选择那个。

      • 对数据库选择有何建议?我现在正在使用 MySQL,我 发现它对我的目的非常强大,我听说 Twitter 是 切换到 Cassandra。开始会不会太难?

      这也不是一个容易回答的问题,因为这一切都与需求有关。但是任何 SQL 服务器都可以。根据那里的网站,Cassandra 旨在“在不影响性能的情况下实现可扩展性和高可用性”。您是否认为您的网络服务会收到很多请求,那么它可能是一个需要考虑的选择。

      • 对于服务器端,如果需要搭建Server管理 界面,供您作为管理员管理和监控社区, 会员资格,数据等,是否有任何现有的解决方案,或 框架或工具?什么是最有效的方法?

      这只有在您选择 SQL 服务器和服务器语言时才会得到解答。

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

      从更简单的开始,你在这里真的很困难。

      • 服务器上有没有好的参考资料或示例代码 在这样的背景下我们可以学习吗?

      可能有一些,但你真的应该从小处着手。


      Twitter 最初是一个 Rub on Rails 应用程序,正在研究可扩展性和可用性,而 ruby​​ 并不是很好的 ar(这是我个人的看法)。或查看 facebook,他们编写了一个 php to c 编译器,以使 php 运行得更快。

      我唯一能说的就是开始代码,当你的应用起飞时,然后解决一些性能问题。

      既然你说你是编程新手,那么你就可以咀嚼了。

      【讨论】:

      • 非常感谢您的快速回复。 :) 你的回答肯定解释了为什么我在这个大话题上能找到这么少的信息。也许正如Shiny所说,我问了一个太大的问题。谢谢你的分享,我会上传我关于这个话题的发现。我现在从 PHP+MySQL 开始,到目前为止一切都很好。正如你所说,当我开始遇到障碍时,我会更多地了解这个话题。
      【解决方案3】:

      这是一个很大的问题,我认为没有最佳答案。这主要取决于您关心的内容,例如开发过程的速度,实现的难易程度等。

      而哪个流行,哪个酷,我觉得说不通。

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

      还有,待续。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多