• ngx_mruby Benchmark at 2016年03月18日

    #3 楼 @nouse #5 楼 @42thcoder

    wrk 结果也有,结果一致就没发。

    wrk --threads 8 --duration 5 http://localhost:9292

    # ngx_mruby
    
    Running 5s test @ http://localhost:9292
      8 threads and 10 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   436.26us    1.23ms  30.83ms   99.51%
        Req/Sec     2.72k   722.64     4.15k    72.73%
      110280 requests in 5.10s, 16.39MB read
    Requests/sec:  21626.12
    Transfer/sec:      3.21MB
    
    # rack
    Running 5s test @ http://localhost:9292
      8 threads and 10 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     3.75ms  671.42us  15.34ms   89.68%
        Req/Sec   268.22     23.30   373.00     93.60%
      10856 requests in 5.10s, 1.28MB read
    Requests/sec:   2126.91
    Transfer/sec:    257.35KB
    
  • ngx_mruby Benchmark at 2016年03月18日

    #3 楼 @nouse 。。你说的我都知道啊亲,我自己也说了结果不准。

    但是问题是,我的目的并不是要得到一个准确的“这台机器能响应多少请求”上啊。

    在其他变量都一致的情况下只有响应环境不一致,测试一下区别,这个才是我的目的啊。

    所以 ab mac 都不可信但是性能差距很明显是事实啊亲。

  • ngx_mruby Benchmark at 2016年03月18日

    #1 楼 @nouse 自己测得啊,自己的笔记本啊,差了一个数量级的对照已经很明显了吧。

  • Rails 中的参数传递问题 at 2016年03月04日

    据猜测。。。输入空值实际上并不是空,你可以试着输出一下,search.class 因为很多情况下空有可能会是一个空字符串,所以判断的时候使用 search.empty?来做判断再试下。

  • https://www.juhe.cn/docs/api/id/177/aid/601 考虑用 api 自动更新啊,手动的多麻烦啊。

  • #21 楼 @pathbox 这。。。singleton class 降智商啊。。。

    # 就是class extend module对吧 所以可以用Person.hi
    class Person
      extend Some
    end
    
    class Person
      # 一样的道理啊 singleton class extend module 所以只能用singleton_class.hi啊
      class << self
         extend Some
      end
    end
    
  • #17 楼 @pathbox 你输出两次是因为你本身就 P 了两次啊。。。你 singleton class 的 extend 不能在外面用啊

    class Person
      class << self
         extend Some
         hi
      end
    end
    
  • #14 楼 @pathbox 不是啊,题主问的是 singleton 的 singleton,所以如果是 include 应该是这样:

    class Person
      class << self
        class << self
            include SomeModule
        end
      end
    end
    

    #15 楼 @way_von

    其实很简单啊,你想那么复杂干嘛,就是跟 singleton class 的功能都一致,为 object 提供实例方法

    你可以看看我最近写的这个

    http://blog.jerry-tao.com/ruby/2016/01/14/singleton_class_for_dummy.html

  • 额外的说,你在 singleton 里定义的 class method 其实都是定义在 singleton class 的 singleton class 里的,例如:

    class Person
      class << self
             def self.private_attributes(*params)
                  # some code
             end
          # 这样就可以在这里直接使用 private_attributes了啊
          private_attributes :some_config
      end
    end
    

    或者在 singleton 里 extend 一个 module

    class Person
      class << self
         extend SomeModule
       end
    end
    
  • 也不能说没有实际用途吧,以下面代码为例。

    class Person
      class << self
          class << self
             def private_attributes(*params)
                  # some code
             end
          end
          # 这样就可以在这里直接使用 private_attributes了啊
          private_attributes :some_config
      end
    end
    

    不过再深一层好像就真的有点过分了,singleton class 的 singleton class 的 singleton class。。。

  • Ruby 异常处理最佳实践 at 2016年02月25日

    抛异常部分不好说,但是捕获异常觉得还是不应该把异常抛出给最终用户,话说在 ApplicationController 里同意捕获 log 应该是比较常见的做法吧。

  • 对 Rails params 的困惑 at 2016年02月24日

    两种都可以,出错与 params 无关,还是贴代码吧。

  • Ruby 常量查找 (译) at 2016年01月12日

    #4 楼 @qinfanpeng 额 还不可以删除回复。。。

  • Ruby 常量查找 (译) at 2016年01月12日

    #2 楼 @qinfanpeng 额 是重复了 我没注意到,现在正在找删帖功能。。

  • #5 楼 @billy 还是看情况吧 比如下面的例子 这种 非功能性需求 上 RM 之类的就没有必要了 #6 楼 @Rei 还有 AR 的 LogSubscriber 应该还有性能的 subscriber

  • #5 楼 @billy 还是看情况吧 比如下面的例子 这种 非功能性需求 上 RM 之类的就没有必要了 #6 楼 @Rei 还有 AR 的 LogSubscriber 应该还有性能的 subscriber

  • 还是借用这句话,法典这种东西,更像是指南,而不是规矩。

  • #3 楼 @billy 不是的,主要是按需选择。 直接呼叫适用于 你知道你需要谁来执行什么,而 P/S 模型适用于你不知道谁需要做些什么 或者说你不关注谁想继续做些什么

  • #60 楼 @scriptfans 我的意思是说 你这个例子在任何语言框架里都会遇到,跟 rails 无关。

  • 架构 (其实我个人是喜欢看对 rails 的吐槽的,不过很多地方楼主没有找准槽点。) 第一个例子就并不十分准确,准确的说 rails 应该是充分利用了ruby的特性来完成工作,而不是靠引入更多的概念,不过这个谁是谁非很难讲,所以可能会显得在架构上略弱于 java(不过反过来说就是 java 不得不用很多框架来实现语言没有实现的功能)。 充血模型这个梗真的是翻来覆去的说了,解决办法也提出过很多次了,rails 的特点就是很多问题不止一个选择,很难说哪个是best practice,所以其实从简单逻辑->充血,复杂一点->mixin,再复杂一点->services/interactor 这些都是可选的啊,也就是说你如果在 java 里也用充血模型也没关系啊,但是你不能把这个锅推给 rails/java spring 之类的东西。 《迦勒比海盗》里面有一句话:“法典,更像是指南,而不是准则……” 所以说,srp 这种东西只是一种指导性的指南,(我又想起了数据库的范式)。 是否要遵循,完全取决于需求,就像我们很多时候选择 rails 是一种速度/性能的权衡一样。

    pipeline (我不用这玩意,真的没办法评价,不过对其中一个例子提点建议) 那个购物车,你说返回 erb 不好处理,返回 json 就是前台的工作,可是事实上,在哪个框架里你都要面临这种场景啊。

    说实话,我真觉得楼主的吐槽没有找准槽点啊,很多都是选择怎么做的问题,并没有哪种框架可以把人的选择和工作替代了,只能尽可能的简化。

    要说对 rails 吐槽的话,

    https://news.ycombinator.com/item?id=9123683

    Don't switch stacks. He's expressing an opinion about code from Rails developers which is about as broad as opinions go this side of saying "black people are like X" or "Asians are like Y." On the bright side he does leave the door open that Rails developers could write solid code though most don't in his opinion. The best thing you could do is continue working on Rails but read a variety of opinions on good code in different languages, read Coders at Work and similar texts on coding, and remember not to blindly follow coding trends. Generally keep your code simple and work to find abstractions to fit your domain.
    I'm not saying anyone here is incorrect in their generalizations of Rails developers. I've obviously never seen the code they are criticizing. But they also aren't providing any useful information. Keep that in mind above all else. There will always be politics and disagreements. You're never going to make everyone happy and it would be a disaster to try to.
    

    这个评论才是真正找到了 rails 的痛点。

  • 《提问的智慧》 at 2015年02月25日

    不能同意更多。

  • 关于时间加减的问题 at 2014年06月11日
    [1] pry(main)> DateTime.now - DateTime.parse('2014-06-11 23:16:55')
    => (-1538026031/4800000000)
    
  • 如何实现多模板? at 2014年06月07日

    把 HTML 相关内容存进数据库.... 例如 template has_many images template has_one stylesheets 然后这一套对象再可以分别设置属性。

  • Apple 发明新语言了 Swift at 2014年06月03日

    换句话说,苹果开发将迎来又一次春天,新的更容易切入的语言,前所未有的开放程度的 SDK,IOS 和 Mac OS 的更无缝的结合,野心不小的 HomeKit。

  • 可以同时用多个 submit 后台接受的时候 value 是不一样的 你可以试一下 params 里面可以看见区别

    1. 看官方 doc 是比较推荐用_来分割层级
    2. 目测你引用正确的结果 email 会得到一个 string 那肯定是无法继续层级了 所以如果你非要这么做,那么可以自己把这个 string cast 成一个 hash 去用
  • Ruby 社区应该去 Rails 化了 at 2013年03月26日

    我想起一句话 中国的时尚杂志是一群月薪八千的编辑,告诉一群月薪三千的读者,月收入三万的人怎么花钱。

  • 如果只想实习不想转正的考虑么。。。

  • @zhang991228752 你那样写的是系统环境变量里的,bundle exec xxxx 的意思是使用 Gemfile.lock 里的版本