【问题标题】:Is anything wrong with using Sinatra to develop a full website?使用 Sinatra 开发一个完整的网站有什么问题吗?
【发布时间】:2011-12-12 21:53:06
【问题描述】:

我正在开发一个新网站。该网站的复杂程度与 Yelp.com 差不多。我对 Ruby 很陌生,但我决定使用它来开发后端。在这个过程中,我偶然发现了 Sinatra。我真的很喜欢 Sinatra 中路由的简单性,并决定将其作为我开发的起点。似乎大多数地方都说 Sinatra 非常适合快速开发和“小型 Web 应用程序”。 Sinatra 是否存在固有的缩放问题,或者 cmets 是否源于您基本上必须从头开始构建所有内容的事实?如果您对使用 Sinatra 作为大型 Web 应用程序的基础有任何意见,我们将不胜感激。

我不确定 stackoverflow 是否是提出此类意见问题的正确位置,但它是我目前可以使用的唯一资源,可以实际获得有关此类问题的一些反馈。

【问题讨论】:

    标签: ruby web sinatra


    【解决方案1】:

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

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

    通过将辅助方法分解为单独的库并利用 Ruby on Rails 库(如 ActiveRecord 等),我发现该代码并不比我编写的任何其他代码更难维护,而且它当然很容易测试。

    我已经编写了一些简单的通用路由,允许我使用与 Nesta 项目类似的想法来聚集页面级内容(用 markdown、textile 或 haml 编写),这意味着我的 99% 的路由是 API 调用,而不是页面显示调用。我还为基于规则的导航构建添加了一些简洁的助手,它们也确实很有帮助。

    所以简而言之,答案是否定的,使用 Sinatra 构建大型网站没有任何问题,事实上,我相信它可以带来设计更好的 Web 应用程序。

    【讨论】:

    • 我对这个 api 与页面调用哲学有点不熟悉。你能指出我进一步阅读的来源吗?感谢您的回复,顺便说一句。
    【解决方案2】:

    使用 Sinatra 构建大型站点不会遇到扩展问题,但肯定会让您很难维护代码。虽然我喜欢 Sinatra,但 Rails 中的约定优于配置。另请注意,将 Sinatra 用于大型网站并没有错/不好/不可能,只是很难做到正确,而且您不希望自己以后后悔。如果您仍然顽固地使用 Sinatra,您可以尝试 Padrino,它基本上是 Sinatra 的包装器(我从未使用过它,因此无法帮助您)

    【讨论】:

    • 我听说过帕德里诺,你所说的公约是我担心的事情。我一定会调查帕德里诺。谢谢!
    • 对 Padrino 的进一步评论,他们建议先学习 Sinatra,他们说您通常可以将您使用 Sinatra 所做的事情包含到 Padrino 应用程序中。听起来有点太神奇了,但 Padrino 是非常模块化的,因此您可以选择其中的一部分,而无需使用整个框架(如果您愿意的话)。
    猜你喜欢
    • 2011-04-10
    • 2018-04-21
    • 1970-01-01
    • 2010-09-12
    • 2011-04-20
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多