• 还有些小贴士,初学者不一定知道。

    1. nginx 比 apache 快
    2. Ruby 1.9.3 比 1.8.7 快很多。(1.9.2 不要用)
    3. Production 模式启动了好动性能有关的参数。必须用。development 模式每次 http 请求,都会把 model,controller,helper,view 等文件重现 load。很慢的。
    4. 如果是 rails 3.1 以上,在 production 模式下,最好 precompile assets。 。。。
  • RoR 项目的性能 tuning,首先看数据库。是否有足够多的 index。然后系统有没有用 caching(比如 memcached)。如果你用 mysql,有没有把它内置的 caching 打开。这个 caching 可能会提高性能数十倍。PostgreSql 也能 caching,稍微麻烦一点。

    这些简单的办法弄完后,还是不好,可以用 ruby profiler 看一下,这个 bottleneck 到底在哪里。然后根据情况,针对性的给出方法来解决。

  • The answer is 0 for me. I'm using minitest. :-)

    It's said that the minitest will be included as the default test framework in Rails 4. A single command would tell me if the migration from my rails 3 projects to rails4 is successful or not.

    rake test

  • 我原来开发组里有用 windows 做 RoR 项目的。他们遇到很多麻烦。包括 source control, unit test, deployment 等等问题。有的 GEM 在 windows 下根本就不能用。他们不得不 monkey patching。

    我建议在可能的情况下,最好还是在 Unix like 的环境下 RoR 项目。

  • 在 application_controller.rb 里面定义这个 method

    # file application_controller.rb
    
    private
    
    def work
      ....
    end
    

    然后在你每个具体 controller 里面用它

    # file xxxxxx_controller.rb
    before_filter :work, :only => [:a1, :a2]
    
    # file yyyyyyyy_controller.rb
    before_filter :work, :only => [:b1, :b2]