2012-01-23 136 views
2

我爲開放式問題提前道歉。我試圖搜索,但不知道什麼具體搜索,在所有誠實...服務器端編程:服務器/客戶端入門簡單教程

簡而言之,我是一個新手iPhone程序員,我已經使應用程序已與Java服務器進行通信。例如,我的iphone應用程序將使用HTTP Get或POST請求,並會接收回數據。然而,我並不是寫服務器端代碼的人,坦率地說,不知道它是如何完成的!

我想至少了解雙方如何完成工作的機制,所以現在我正在努力學習。我拿起一本關於Google App Engine的書,因爲它似乎是一種經濟的方式,以防萬一我決定發佈服務器/客戶端應用程序。

但是,我認爲我可以選擇RoR或PHP。我假設原則必須相同。

如果任何人都可以將我指向顯示服務器/客戶端應用程序中發生的事情的「另一端」的教程,那將非常感謝!另一方面,我的意思是,在客戶端,我已經知道如何請求和接收數據。我只是不知道在服務器端會發生什麼......

謝謝你,對不起廣大的問題..

+0

很多很好的答案,我希望我可以檢查他們。謝謝大家的好評! – kurisukun

回答

3

這些Web應用程序的最重要的組成部分:

  • HTTP服務器:提供靜態文件,可以作爲一個管你applplication動態內容。例如:apache,nginx。
  • 實際的Web應用程序:處理對動態內容的請求。通常你使用一個web框架。例如:Django for python,symfony for php,RoR for Ruby,node.js for javascript。
  • 數據庫服務器。例如:MySQL和PostgreSQL

都可能被視爲一些其他的事情:

  • 郵件服務器來發送電子郵件
  • 圖像處理庫
  • 全文搜索引擎

這些組件不太常見:

  • 內存緩存服務器,例如:內存緩存
  • 非關係型數據庫,例如:Redis的,CouchDB的,了Riak,MongoDB的
  • 任務隊列服務器:例如RabbitMQ的

之所以AppEngine上似乎新手更容易,你不需要配置Web服務器或數據庫。你只需要編寫你的應用程序代碼。帶有任務隊列,memcache,數據存儲,內容交付網絡的完全託管主機已經可以在appengine中使用。

appengine的問題在於它會對你造成很多限制。

如果您不需要memcache,任務隊列和分佈式系統,那麼使用流行的框架開發應用程序非常容易,它們提供教程如何設置您自己的http服務器和數據庫。

如果您需要這些高級部件,則配置一切將會變得更加困難。在Web應用程序開發

常見的做法包括:

  • 使用ORM使用MVC或類似的模式來構建代碼
  • HTML代碼關係數據庫
  • 工作從代碼模板保持一定距離。因此使用模板語言。

作爲一個網絡後端開發者,除了編碼應用程序代碼之外,您還需要很好地理解您使用的數據庫。

如果您只爲您的移動應用程序構建後端,則不需要HTML,CSS,Javascript和模板。儘管MVC模式和ORM仍然適用。您還需要了解更多關於HTTP協議以及實現HTTP API的各種方法。如果您喜歡XML,那麼WSDL會很好。 WSDL有很好的庫,可以方便地編寫HTTP API。

0

我認爲,從應用程序引擎開始可能不適合首發的服務器端開發好主意。

Asp.net(或PHP)將更加「高效」:不僅來源的學習和教程,但也更好地犯錯誤,更好地學習

一旦你用asp.net完成的,並具有良好的初步實踐關於你的服務器端項目, 很容易和非常快速的移動到App Engine

好運

+1

如果你在appengine上犯了錯誤,你必須付錢。例如,如果您在構建數據時犯了一個錯誤,並且在數據庫中有一百萬條記錄時發現錯誤,則可能花費超過100美元來重構數據庫。 – Ski

+0

什麼abaout Node.js? –

1

Java中的基本的API是Servlet API。閱讀this tutorial

在這個API的基礎上,有很多框架(Stripes,Spring MVC,Struts2,JSF,Wicket等),它們都有自己的哲學。儘管有兩組框架:基於動作的框架(Stripes,Spring MVC,Struts2,...)和基於組件的框架(JSP,Wicket,...)。

基於操作的操作通常使用JSP來實現其視圖技術(生成標記),但也支持其他操作。如果你學習JSP,你會學到什麼,在各種框架中會很有用,所以我也會學習它。閱讀this tutorial

0

我舉雙手贊成你使用App Engine開始的選擇:

  1. GAE的一些概念是很難的,但這樣是SQL。如果你不知道,你可能只是從現代化的noSql系統GAE開始。
  2. GAE不適合所有問題。但我相信這很適合您的設置:很多獨立客戶對重要查詢的需求有限。
  3. 關於成本:如果您知道如何編程,GAE便宜。我的EC2和GAE都有不同的設置,雖然他們很難比較,但我相信GAE更便宜。
  4. 恕我直言,主辦的大部分成本來自支持/管理成本。我們有一個團隊10+開發人員,但沒有系統/數據庫管理員。