ruby-on-rails - 何时以及为何应使用类和全局变量?

标签 ruby-on-rails ruby ruby-on-rails-3 variables

我正在使用 Ruby on Rails 3.0.7,我想知道何时以及为什么应该使用类 (@@) 和全局 ($) 变量,以及如果在 this case那些被正确使用。

P.S.:我问这个问题是因为我有 mentioned case-problem并在一个答案中建议使用类变量。如果在那种情况下使用它很好,我很感激你能解释我。

最佳答案

简短的回答是:从不

我是 ruby​​ 的新手,但我确实从其他语言中了解到这一点:全局变量从不是线程安全的。

沿着同样的思路,避免像瘟疫一样的单例模式,除非你只处理一个唯一的线程。


编辑:

顺便说一句,谷歌搜索 ruby​​ 依赖注入(inject)表明 Ruby 不需要任何它。好吧,告诉你什么。确实如此。

因为人们总是假设它不存在,所以有堆积如山的 gem 和图书馆以及不存在的东西。他们基本上假设您只有一个线程和 IO 阻塞。如果他们从一开始就没有这样做,他们可能是线程安全和非阻塞的。但目前,它们不是。

如果他们这样做了,他们也会更好地使用事件驱动服务器。

就目前情况而言,这是一团糟。

Event Machine 不是线程安全的。 Thin 和 Goliath 不是同一回事。机架异步基本上是猴子修补整个事情。 Passenger 使用 fork 并且只有在你安装带 rails 的 REE/1.8.7 时才聪明。 Mongrel 是线程安全的但 IO 阻塞。 Webrick 是单线程和 IO 阻塞的。 list 还在继续。太乱了。

关于ruby-on-rails - 何时以及为何应使用类和全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566029/

相关文章:

javascript - 如何限制 Rails 应用程序中的鼠标点击率?

ruby-on-rails - 如何在 Rails 应用程序中覆盖 gem 生成器模板

ruby-on-rails - 如何查明现有 Rails 应用程序是基于哪个 Rails 版本构建的?

ruby-on-rails - rails/RSpec : mail render in spec results in missing template

ruby-on-rails - 使用I18n.t提交按钮助手

javascript - 如何使用 Rails 对象的 id 设置选择下拉列表中选项的值

ruby-on-rails - Rails 轮数

Ruby 注入(inject)菊花链?

ruby - 应该 validate_format_of 。 not_with 在框架中有问题(或者在我的理解中)

ruby-on-rails - Rails 3 - 带版本控制的图像回形针 - 可能吗?