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
据猜测。。。输入空值实际上并不是空,你可以试着输出一下,search.class 因为很多情况下空有可能会是一个空字符串,所以判断的时候使用 search.empty?来做判断再试下。
https://www.juhe.cn/docs/api/id/177/aid/601 考虑用 api 自动更新啊,手动的多麻烦啊。
#14 楼 @pathbox 不是啊,题主问的是 singleton 的 singleton,所以如果是 include 应该是这样:
class Person
class << self
class << self
include SomeModule
end
end
end
其实很简单啊,你想那么复杂干嘛,就是跟 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。。。
抛异常部分不好说,但是捕获异常觉得还是不应该把异常抛出给最终用户
,话说在 ApplicationController 里同意捕获 log 应该是比较常见的做法吧。
两种都可以,出错与 params 无关,还是贴代码吧。
#4 楼 @qinfanpeng 额 还不可以删除回复。。。
#2 楼 @qinfanpeng 额 是重复了 我没注意到,现在正在找删帖功能。。
还是借用这句话,法典这种东西,更像是指南,而不是规矩。
#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 的痛点。
不能同意更多。
[1] pry(main)> DateTime.now - DateTime.parse('2014-06-11 23:16:55')
=> (-1538026031/4800000000)
把 HTML 相关内容存进数据库....
例如 template has_many images
template has_one stylesheets
然后这一套对象再可以分别设置属性。
换句话说,苹果开发将迎来又一次春天,新的更容易切入的语言,前所未有的开放程度的 SDK,IOS 和 Mac OS 的更无缝的结合,野心不小的 HomeKit。
可以同时用多个 submit 后台接受的时候 value 是不一样的 你可以试一下 params 里面可以看见区别
我想起一句话
中国的时尚杂志是一群月薪八千的编辑,告诉一群月薪三千的读者,月收入三万的人怎么花钱。
如果只想实习不想转正的考虑么。。。
@zhang991228752 你那样写的是系统环境变量里的,bundle exec xxxx
的意思是使用 Gemfile.lock 里的版本