1

我们正计划为更多用户创建一个“大型”网站,最多可以容纳 5000 个用户。我们考虑加入大量实时功能,数据更改会立即传播到所有连接的客户端。Meteor 和 DerbyJS 等新框架看起来非常适合这类东西。

现在,我想知道是否可以使用这些新框架执行典型的后端工作,例如发送(批量)电子邮件、清理数据库、生成 pdf 等。并且以一种富有成效且不糟糕的方式。我也想知道用它们创建复杂的表格有多困难。我习惯了方便的 Rails 视图助手和 Ruby gem 来处理这些事情。

Meteor 和 DerbyJS 都是相当新的,所以我确实希望在不久的将来会添加很多功能。但是,我也想知道将这些框架与“传统”Rails 应用程序结合起来是否是个好主意,该应用程序提供某些不需要实时更新的复杂页面。和/或使用提供 API 来执行繁重后端处理的 Rails 或 Sinatra 应用程序。然后,这些 Rails 应用程序可以访问与 Meteor/DerbyJS 应用程序相同的数据库。有人认为这是个好主意吗?或者更确切地说不是?为什么?

如果对那些新的“单页应用程序实时”框架有足够经验的人可以对此发表评论,那就太好了。他们将走向何方?他们能否通过身份验证和后端处理来处理“完整”的 Web 应用程序?使用它们进行编程会像使用 Rails 一样高效/方便吗?好吧,我想没有人可以肯定地知道这一点;-) 好吧,欢迎任何想法、猜测和想法!

4

3 回答 3

4

对于发送批量电子邮件和生成 PDF等事情,Derby 让您只需使用普通的 Node.js 模块。npm 现在有超过 10,000 个包,因此您可能想要在服务器上执行大多数操作的包。Derby 不控制您的服务器,它可以在任何普通的 Express 服务器之上运行。您应该尽可能地坚持使用 Node.js 代码,而不是将 Rails 与 Derby 一起使用。这并不是说您不能将消息发送到单独的 Rails 应用程序,而是因为您已经必须运行一个 Node.js 应用程序来托管 Derby,您不妨将它用于此类事情。

要与此类服务器端代码进行通信,您可以使用 Derby 的模型事件。我们仍在探索这种代码是如何工作的,我们没有很多示例,但我们将有一个清晰的故事。我们正在自己构建一个与电子邮件服务器通信的应用程序,所以我们应该很快就会有一些实际的经验。

如果您不想使用 Derby 模型进行此类通信,也可以只使用普通的 AJAX 请求或通过 Socket.IO 手动发送消息。您可以使用 Express 以及您的 Derby 应用程序路由自由地创建自己的仅服务器端路由。我们认为拥有这种灵活性是很好的,以防出现我们没有正确预期框架的任何用例。

创建表单而言,Derby 有一个非常强大的模板系统,我正在努力让它变得更好。我们正在开发一个新的 UI 组件功能,它可以构建独立的 UI 小部件库,这些小部件可以简单地放入 Derby 应用程序中,同时仍然可以很好地使用自动视图模型绑定和数据同步。一旦这个功能完成,我认为表单组件库会很快写出来。

我们确实希望包含普通应用程序所需的所有功能,就像 Rails 一样。它看起来不像 Rails 或像 Rails 那样工作,但它最终将具有类似的功能完整。

于 2012-05-30T07:12:08.627 回答
0

对于后端任务(例如发送电子邮件、清理数据库、生成 pdf)最好使用resquesidekiq

于 2012-05-28T20:17:02.527 回答
-1

现在,我想知道是否可以使用这些新框架执行典型的后端工作,例如发送(批量)电子邮件、清理数据库、生成 pdf 等。并且以一种富有成效且不糟糕的方式。我也想知道用它们创建复杂的表格有多困难。我习惯了方便的 Rails 视图助手和 Ruby gem 来处理这些事情。

此外,我的问题不仅与后台工作有关,还与在请求期间可以做的事情有关,例如生成 pdf,或者简单地使用 rails helper 或 gem 中的代码渲染复杂的视图。——</p>

您在这里混合了隐喻-单页应用程序只是一个无需重新加载整个页面即可加载内容的站点,可以是纯 js 的前端,也可以使用普通的 html 和 pjax。

无论您使用哪种前端框架,您所描述的事情都将在后台任务中完成。但是如果您使用的是 ruby​​,则为 sidekiq +1。

至于通知所有其他用户发生了变化,如果您不想维护 websocket 服务器,可以考虑使用http://pusher.comhttp://pubnub.com 。

于 2012-05-28T23:39:01.437 回答