2010-09-16 88 views

回答

90

如果您正在構建一個完整的Web應用程序,那麼您應該使用Rails,因爲它提供了最全面的服務。您還可以利用社區製作的大量工作。

Sinatra非常適合生產非常簡潔的,無廢話的應用程序服務。你沒有太多的工作,但速度非常快。如果您需要數據庫連接,則必須將其添加進來,而這樣的事情可能會使創建中型應用程序成爲一項挑戰。基本上如果你需要一些非常簡單並且不需要Rails的東西,你可能需要Sinatra。

node.js是一個用於生成響應式可伸縮應用程序的優秀新框架,但它幾乎沒有像Rails這樣的成熟平臺的附加組件庫。 node.js確實擅長基於流和按需數據轉換的應用程序。在Node Knockout中製作的一些例子非常有趣,但是這些例子是由一些特殊的團隊製作的。

雖然Node Knockout條目做得非常好,但與2009年Rails Rumble中生成的應用程序相比,它們看起來似乎是缺乏深度和複雜性的玩具。這不是爲了詆譭Node Knockout團隊所做的工作,但它確實表明node.js的優勢主要在於實時事件,而傳統的更普通的基於數據庫的應用則更少。

4

如果您爲客戶工作並需要一些快速現金,請使用Rails。如果你想享受編碼你的應用程序,並保持最大的靈活性和應用程序的速度,使用Sinatra。用它來構建大型應用程序很容易,否則別人會說沒有使用它。

Node.js更像Rack,這是Rails和Sinatra的基礎,並沒有真正的比較。可以在Node.js之上使用的Express.js可以與Sinatra相媲美,可能有其他的框架與臃腫的Rails堆棧相比較,它可以是谷歌它。如果您喜歡編碼異步Javascript,請使用Node.js.它比Sinatra和Rails更快,但是在Ruby中編碼具有優勢,因爲您可以使用許多非常好的紅寶石,這使得生活變得輕鬆。

+0

Sinatra真棒! – sandelius 2015-01-08 15:43:57