2011-12-06 74 views
12

必須有很多應用程序被設計爲與服務器通信。我的問題只是關於iOS設備+服務器端服務交互安裝的應用程序。 Web應用程序並不是我所說的,而且根本不應該包含任何網頁。典型的例子是像Instagram和Twitter這樣的應用程序,其中應用程序和服務器之間交換的大部分信息僅僅是字符串,圖像和整數(以JSON或XML包裝)的數據,不需要網頁演示。關於服務器/客戶端結構的服務器實現的建議iOS應用程序開發?

我的問題是:如果你是一個獨立的應用程序開發人員,並且你正在從頭開始設計這樣的應用程序,而沒有任何現有的網站API,數據庫結構或應用程序(所以你不受任何現有API或數據庫結構的限制或應用協議),什麼是最有效的方法?

什麼服務器端需要做的是:

  • 接收數據由應用程序發送;
  • 用設計的邏輯處理數據;
  • 與數據庫(如MySQL)交互;
  • 做必要的數據挖掘和分析---這可能是由應用客戶端請求的持續運行服務或一次性任務;
  • 根據要求或自發地將數據發送迴應用程序;
  • 在不同App客戶端之間交換或廣播數據(即:羣聊室和對等消息);

據我的瞭解有實現服務器端3種顯而易見的選擇:

  • PHP
  • 的Python
  • Ruby on Rails的

(請隨時添加更多選項)

我的問題是:

  • 哪一個是實現服務器端最合適的選擇?
  • 如果應用程序是集中專注於自然人類語言/文字檢索,分析和數據挖掘,哪一個是最好的選擇?我聽說Python在這方面做得很好。
  • 有關數據庫選擇的任何建議?我現在正在使用MySQL,並且發現它對我的目的來說非常強大,我聽說Twitter正在轉向Cassandra。這會難以啓動嗎?
  • 對於服務器端,如果你需要建立一個服務器管理界面,爲您的管理員來管理和監控的社區,會員,數據等,沒有任何現有的解決方案,或框架或工具是什麼?什麼是最有效的方法?
  • 如果一個新的程序員對他們沒有經驗,你建議他/她從哪一個開始?
  • 在這種情況下,我們可以從中學習到服務器端是否有很好的參考資料或示例代碼?

我知道在Stackoverflow的這些領域有很多非常有經驗的專家,但是我看到更多的新手剛剛進入iOS開發領域,沒有太多的服務器/數據庫編程經驗知識。我希望這個線程可以幫助那些想要設計一個帶有服務器/客戶端結構的應用程序,但不知道從哪裏開始。

ps:我會不斷更新這個問題的線程,並在這個主題上添加我的發現,以幫助所有其他用戶在stackoverflow。 :-)請儘量讓你的回答豐富,容易理解和建設性。我想這個主題的大部分讀者將是這個偉大社區的新成員。

回答

0

這是一個巨大的問題,我不認爲有最好的答案。這主要取決於你在乎的是什麼,比如開發過程有多快,實現有多容易等等。

哪一個很流行,哪一個很酷,我覺得它沒有什麼意義。

我個人認爲,我擅長ASP.NET,我可以輕鬆獲得Windows服務器,所以我將從一個ASP.NET服務開始提供數據。

並且待續。

1
  • 哪一個是實現服務器 方最合適的選擇?

嗯,這取決於你所知道的,我們有理由選擇其他

  • 如果應用程序是集中專注於自然人類語言/文字 搜索,分析和數據挖掘的一個哪一個是最好的選擇?我聽說Python在這方面做得不錯。

這會反映出你的第一個問題,你選擇你需要的語言。因此,如果python使它更容易,然後選擇一個。

  • 有關數據庫選擇的任何建議?我現在正在使用MySQL,並且我發現它對我的目的來說非常強大,我聽說Twitter將 切換到Cassandra。這會難以啓動嗎?

同樣不是一個容易回答,因爲這一切都與要求來做。但是任何SQL服務器都可以。卡桑德拉的目的是爲了「可擴展性和高可用性而不影響性能」,並贊同那裏的網站。你認爲你的webservice會得到很多的請求,那麼它可能是一個選擇考慮。

  • 對於服務器端,如果你需要建立一個服務器管理 接口,爲您的管理員來管理和監控社區, 會員,數據等,沒有任何現有的解決方案,或 框架或工具呢?什麼是最有效的方法?

這又只會當你選擇了一個SQL服務器和服務器語言來回答。

  • 如果一個新的程序員在他們非沒有經驗,你 建議他/她開始用哪一個呢?

從一些簡單的事情開始,你真的在​​這裏出去。

  • 是否有在這樣的情況下,我們可以借鑑的服務器 側任何很好的參考材料或示例代碼?

雖然有一些,但你應該從小處着手,然後從那裏開始工作。


微博開始了作爲on Rails應用程序一擦,並正在擴展性和可用性這紅寶石是不是真的好AR(這是我的個人意見)。或者看看他們已經寫了一個PHP到C編譯器,使PHP運行更快。

我可以說開始的代碼,當你的應用程序沒有起飛,那麼解決一些性能問題的唯一的事。

而且因爲你的狀態,你是編程新手不要貪多,那麼你可以咀嚼。

+0

真的很感謝你的快速回復。 :)你的答案肯定解釋了爲什麼我在這個大問題上找不到那麼多信息。也許正如Shiny所說,我問了一個太大的問題。感謝您的分享,我將上傳有關此主題的調查結果。我現在開始使用PHP + MySQL,到目前爲止非常好。如你所說,當我開始遇到障礙時,我會更多地瞭解這個話題。 – horacex

4

您確定要花時間&開發您自己的服務器&開發您自己的API嗎? 有很多mBaaS的(移動後端即服務)提供商今天這樣QuickBloxParseStackMob,它已經準備好使用,他們有很大的自定義對象的API和一些預定義的模塊。他們有很大的配額很好的免費計劃。其中一些QuickBlox有企業計劃 - 所以你可以購買許可證,併爲他們服務器團隊更新服務器。

因此,我建議不要開發你的服務器,並考慮mBaaS市場。

你差不多一樣的問題 - 我可以推薦一下QuickBlox Custom Objects code sampleCustom Objects API。自定義對象模塊提供了靈活性來定義您需要的任何數據結構(模式)。架構在管理面板中定義。該架構稱爲Class,幷包含字段名稱及其類型。我認爲這是你需要的。

相關問題