gpt4 book ai didi

ruby-on-rails - 在服务器(Node.js 和 Rails)和客户端上运行 Backbone 进行复杂验证是否明智?

转载 作者:搜寻专家 更新时间:2023-11-01 00:09:08 25 4
gpt4 key购买 nike

这很冗长,如果不符合本地习俗,我深表歉意。

我正在为一个 Windows 应用程序编写一个 Web 替代品,该应用程序用于在消防站之间调动消防员以满足技能要求、请病假、让救火车退役等等。 Rails 是理想的后端,但我很快意识到我需要一个客户端框架并选择了 Backbone.js。

一次只有一个用户在上面,所以我不必考虑保持客户端同步。

我已经实现了大部分应用程序,并且运行良好。不过,我一直在避免面临一个重大缺点:服务器端验证。我有各种客户端程序确保无法通过界面进行无效更新;例如,用户不能将今天不工作的人调到另一个站点。但没有什么可以阻止恶意用户在 UI 外部创建记录并将其保存到服务器,因此需要服务器端验证。

客户端加载接收所有今天的相关记录并处理它们。当一条新记录被创建时,它被发送到服务器,如果保存成功则在客户端进行处理。

确定今天谁在工作的过程很复杂:有人可能被安排工作,但已经休假,但随后被召集,但随后又被送回家病假。在服务器上(每次加载?!)在 Ruby/Rails 中理清所有这些似乎是业务逻辑的不幸重复。在涉及根据站位短缺和工会规则计算谁将临时晋升到更高级别的特定情况下,它还会产生大量开销,这可能意味着重新加载和处理几乎所有今天的数据,在每次晋升时一遍又一遍。

所以,我想,我拥有构建对象模型并限制可以创建哪些模型的所有这些 Backbone 基础设施,为什么不在服务器端也使用它呢?

这是我的不确定性:

我是否应该放弃 Rails 而只使用 Node.js 或其他在服务器上运行 Backbone 的方式?

或者我可以将 Node.js 与 Rails 一起运行吗?当用户打开应用程序时,我可以将相同的数据提供给浏览器和 Node,Rails 会检查服务器端 Backbone 以确保建议的新对象在保存它并将其返回给浏览器之前有效。

一个工厂就是 Rails 在这个应用程序中根深蒂固的程度。没有那么多用于创建/删除更改的服务器端 Ruby,但我做了一种适配层来加载数据以补偿遗留数据库模型。 Rails 主要只提供 JSON、CSS、Javascript 和模板资源。我确实有很多 Cucumber 功能,但也许只有数据创建功能需要更新?

哇!所以,我正在寻找保证:是否合理,如建议的那样in this answer , 在服务器上同时运行 Rails 和 Node,带有某种 inter-process communication ?还是 Rails 的实用性大幅缩减(它 几乎是一个单页应用程序,就像提到的 in that answer )以至于我应该完全摆脱它并忍受一些重写到 Node 环境?

感谢阅读。

最佳答案

听起来您并不十分担心 concurrency就像能够推送数据一样,这两个平台都完全能够执行。如果您现在对 Ruby 代码进行了大量投资,并且没有人提示它的使用,那么您可能担心什么?如果您只想使用 Node 进行推送和通过堆栈使用 javascript 的奇异性,那么将代码移至它可能是值得的。从您的评论中,我真的觉得更多的是关于您感兴趣的内容,但是您必须支持所选择的语言。如果你是团队中唯一的人,那么很容易就因为它很有趣而进入到 Node 的重构中。只是回到谁提示更多,你还是客户。总结一下:Node 让您可以在代码库中转向单一语言,但您必须担心服务器上的 javascript 目前存在哪些缺陷。 Ruby on Rails 很不错,因为您拥有快速生成功能并将它们原型(prototype)化的所有能力。

关于ruby-on-rails - 在服务器(Node.js 和 Rails)和客户端上运行 Backbone 进行复杂验证是否明智?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com