• 另外ruby是有性能提升啊,不过任重而道远

  • 贴下你在文章中提到的递归的fib在几个语言下的跑分供参考,CPU是非满血版的i5-8250U,机器是4.9.76-1-MANJARO #1 SMP PREEMPT Wed Jan 10 20:17:16 UTC 2018 x86_64 GNU/Linux

    ruby 2.3.3

    
    •100% ➜ time ruby fib.rb
    102334155
    ruby fib.rb  11.28s user 0.01s system 99% cpu 11.303 total
    

    ruby 2.5.0

    •100% ➜ time ruby fib.rb
    102334155
    ruby fib.rb  9.56s user 0.01s system 99% cpu 9.570 total
    

    crystal 0.24.1

    •100% ➜ time crystal fib.rb 
    102334155
    crystal fib.rb  1.70s user 0.10s system 106% cpu 1.681 total
    

    go run

    •100% ➜ time go run fib.go
    102334155
    go run fib.go  0.84s user 0.08s system 95% cpu 0.963 total
    

    go build

    •100% ➜ time ./fib
    102334155
    ./fib  0.65s user 0.00s system 99% cpu 0.660 total
    

    crystall速度不错,而且直接可以拿ruby版本的代码跑,很爽 😀

  • 环绕别名 at 2018年01月19日

    再来一个例子

    class Test
      p instance_methods(false)
      def t
      end
      p instance_methods(false)
      alias :new_t :t
      p instance_methods(false)                                                                                                                                    
    end 
    
  • 环绕别名 at 2018年01月19日

    原因在于,ActiveRecord方法是动态加载的,它自己加上了很多元编程的东西,其实在你运行alias :real_avatar :avatar的时候,还不存在avatar这个实例方法,不信你试试看

    class User < ApplicationRecord
      p instance_methods(false)
      alias :real_avatar :avatar
    
      def avatar
        real_avatar.present? ? "real_avatar" : "default.png"
      end
    end
    

    你看Ruby元编程的话,建议用原生Ruby来尝试例子,后面它会讲到Rails里面的元编程,你心里就有数了

  • google rails test database connection

  • nil.class #NilClass
    nil[] #NoMethodError: undefined method `[]' for nil:NilClass
    
  • 居然沒有人,我先支持一下,希望能坚持做下去👍

  • Ruby 2.5.0 已发布 at 2017年12月28日

    不是每一版都有性能提升吗……

  • 谈谈我对 Ruby 的看法 at 2017年12月28日

    直接

    self.size <=> param.size
    

  • 这个几句话说不清,你可以看Ruby元编程,后面专门有一章讲 ActiveRecord::Base