2012-01-03 43 views
0

我是新來的RoR,我試圖創建一個Web應用程序,行爲像一個Web桌面。 '桌面'將與iGoogle類似,您可以在其中拖放塊。基於Web的桌面與軌道上的紅寶石

在這個項目中,我一定要通過OAuth與其他服務提供商連接,例如Facebook,Twitter。目標是讓用戶使用網絡瀏覽器從多種設備(手機,平板電腦,筆記本電腦)訪問他們的「桌面」,用戶可以在身份驗證過程後在桌面上使用他們期望的服務(Facebook,Twitter)。

所以我的問題是:MVC是否適用於這個項目?因爲通常數據庫僅用於存儲用戶信息和類似iGoogle的塊。如果是的話,RoR會是一個很好的解決方案嗎?感謝您的建議。

+0

我建議你用rails製作幾個小項目來獲得一些經驗。然後你會看到它是否合適。 – 2012-01-03 10:43:17

+0

我使用rails製作了一個類似twitter的微博和電影網絡應用程序,覺得它很容易但功能強大。我懷疑的是我打算創建的網絡應用可能沒有很多頁面,在這種情況下,rails mights中的路由對我來說毫無意義(如此浪費)。 – shinnyx 2012-01-03 15:19:24

回答

0

MVC以相對簡單的方式爲您提供處理數據庫和複雜數據以及表關係的優勢。這伴隨着擁有一個沒有最輕內存佔用的大框架的成本。

如果您只想在數據庫中存儲一些鍵/值信息,並且存儲了一些基本的用戶信息,則不需要複雜的關係。我建議使用像Sinatra這樣的微型框架(它是基於Rack的基於Rails)來嘗試你的想法,並且看看它是否足以滿足你的需求。但是,如果您已經有更復雜的擴展計劃,RoR可能是更好的選擇。

我想說MVC適用,因爲你想以一種受控和可維護的方式存儲和訪問數據。您的目的RoR可能會造成太多的開銷。如果對於像這樣的小應用程序,內存佔用對於你來說並不重要,那麼Rails將會完成這項工作,但你肯定只需要使用它的一小部分。

+0

同意內存佔用情況,但軌道寶石會與Sinatra一起工作嗎? – shinnyx 2012-01-03 15:23:38

+0

基於機架的應用程序的好處在於,您可以將需要的部分從一個(即。Rails)添加到另一個,也許是Sinatra應用程序。例如,您可以將Rails的ActiveRecord :: Validations包含到您的Sinatra項目中,以利用這些數據庫驗證。我沒有自己嘗試過,但** ruby​​ **像oauth-ruby這樣的寶石也應該與Sinatra一起工作。 – 2012-01-03 15:45:17

+0

謝謝澄清,我會試一試西納特拉是否適合我。 – shinnyx 2012-01-04 16:24:12

0

它可能會爲你做這項工作。有很多「寶石」可以爲你做OAuth。這可能會爲您節省開發時間。由於您想要存儲和訪問數據,MVC可能會爲您完成這項工作。您也可以在沒有模型的情況下製作控制器/視圖。或模型分開,取決於你需要什麼!另外,在rails中進行ajax調用很容易,這可能非常適合您的iGoogle應用程序。

但是,這一切都不應該成爲使用rails或任何其他語言的主要觀點。使用你熟悉的語言。學習一門新的語言/框架/ ...如果你的日程安排緊張,這可能是一個不好的選擇。我的建議是,嘗試製作一個簡單的應用程序,例如在rails中的博客,看看這種語言是否適合你! (搜索互聯網上的例子)

你可以在客戶端使用JQuery。您可能還想考慮查看Jquery Mobile,具體取決於您想要做什麼。 http://jquerymobile.com/

有一大堆網站可以幫助您入門。我建議觀看railscast.com上的視頻和教程,看看軌道是否適合你。

這裏有一些鏈接 http://railscasts.com/episodes/310-getting-started-with-railshttp://rubyonrails.org/screencasts

祝你好運!

+0

感謝您的建議,但我認爲如果我想製作單頁應用程序,MVC/RoR是否運行良好,我的擔心會更大。 – shinnyx 2012-01-03 15:27:55

+0

MVC會工作,但可能會有一些開銷是的。每個塊可以被定義爲一個控制器;) – 2012-01-04 17:33:53