Ruby 使用Sinatra开发完整的网站有什么问题吗?

Ruby 使用Sinatra开发完整的网站有什么问题吗?,ruby,web,sinatra,Ruby,Web,Sinatra,我正在开发一个新网站。该网站的复杂程度将达到Yelp.com的水平。我对Ruby还很陌生,但我决定用它来开发后端。在这个过程中,我偶然发现了西纳特拉。我真的很喜欢Sinatra路由的简单性,并决定将其作为我开发的起点。似乎大多数地方都说Sinatra非常适合快速开发和“小型网络应用”。Sinatra是否存在固有的扩展问题,或者这些评论是因为您基本上必须从头开始构建所有东西?如果您对使用Sinatra作为大型web应用程序基础的意见有任何评论,我们将不胜感激 我不确定stackoverflow是否

我正在开发一个新网站。该网站的复杂程度将达到Yelp.com的水平。我对Ruby还很陌生,但我决定用它来开发后端。在这个过程中,我偶然发现了西纳特拉。我真的很喜欢Sinatra路由的简单性,并决定将其作为我开发的起点。似乎大多数地方都说Sinatra非常适合快速开发和“小型网络应用”。Sinatra是否存在固有的扩展问题,或者这些评论是因为您基本上必须从头开始构建所有东西?如果您对使用Sinatra作为大型web应用程序基础的意见有任何评论,我们将不胜感激


我不确定stackoverflow是否是提出此类意见问题的正确场所,但它是我目前唯一可以获得此类反馈的资源。

使用Sinatra构建大型网站不会面临扩展问题,但肯定会给你一个非常困难的时间来维护代码。虽然我喜欢Sinatra,但rails中的约定胜于配置。还要注意的是,在一个巨大的网站上使用Sinatra并不是错误的/不好的/不可能的,只是它很难做到正确,你不希望自己以后后悔。如果你仍然顽固地使用Sinatra,你可以试试它,它基本上是Sinatra的包装器(我从来没有使用过它,因此无法帮助你)

我已经使用Sinatra构建了我的上两个相当复杂的项目,并且很享受这个过程。我喜欢的是它鼓励你考虑你正在建立的Web应用程序的API,而不是事后考虑。

我现在倾向于让API工作并测试,然后使用jQuery构建面向前端的浏览器。前端和后端之间的所有交互都是通过API完成的

通过将helper方法分解到单独的库中,并利用RubyonRails库(如ActiveRecord等),我发现该代码并不比我编写的任何其他代码更难维护,而且测试也很容易

我编写了一些简单的通用路由,允许我使用与Nesta项目类似的思想对页面级内容(以markdown、textile或haml编写)进行集群,这意味着我99%的路由是API调用,而不是页面显示调用。我还为基于规则的导航构建添加了一些简洁的帮助工具,这也非常有用


因此,简言之,答案是否定的,用Sinatra构建大型网站没有什么错,事实上,我相信它可以带来设计更好的web应用程序。

我听说过Padrino,你对约定的看法是我担心的。我一定会调查帕德里诺的。谢谢关于Padrino的进一步评论,他们建议首先学习Sinatra,他们说通常可以将您使用Sinatra所做的事情包含到Padrino应用程序中。听起来有点太神奇了,但是Padrino是非常模块化的,所以如果你选择的话,你可以选择它的各个部分,而不必使用整个框架。我对api和页面调用的哲学有点不熟悉。你能给我指一个来源让我进一步阅读吗?谢谢你的回复,顺便说一句。