幻灯片很简洁,没有高深莫测感,赞一个
#30 楼 @xiaoronglv 想起来了,好象是看到一个,当时以为是 felix 的老婆之类
#27 楼 @yedingding 看上下文还是一个有美女的大会,不过我没看到,是不是来的迟了?
支持啊,虽然我还是对 go 提不起兴趣,不过 ruby 社区应该有点开放的心态吧
翻出了这个老帖子,有点好奇现在的做法,结果看到是直接包了一个 rescue 了事,各种无语
ObjectSpace.each_object(Module){|m|
begin
name = m.name
rescue Exception
name = ""
end
begin
next if name != "IRB::Context" and
/^(IRB|SLex|RubyLex|RubyToken)/ =~ name
rescue Exception
next
end
candidates.concat m.instance_methods(false).collect{|x| x.to_s}
}
#3 楼 @luikore 恩,玛雅人的年历真害人啊 #7 楼 @yedingding ruby 活动我总是有兴趣的,看看其他人吧
#9 楼 @blacktulip 要是这么比的话,LVS 就完败了,虽然它是我心目中最牛的国人开源项目
有人小便达到 180 秒么?我忍不住估算一下他的容量,小便后体重会明显变化啊
#11 楼 @iBachue 你没理解我的意思,java 工程师们想出了 AOP 技术来解决一些通用问题,但是他们没有在多个 AOP 组件之间建立更进一步的 AOP over AOP 的技术结构,而只是简单的规定——”AOP 功能代码要保持自我完备和功能最小化”,这样,开发 AOP 功能仅仅针对“普通代码”。
ruby 也是一样,类似 AOP 的功能模块重点是服务“普通代码”,至于用元编程技术“植入”或者各种技巧增强的代码,可以简单忽略,这样你就不用纠结了。
当然,实际情况可能比这个复杂,因为有 DSL 技术存在,基于 ruby 的方案可能是多个 DSL 从底层到高层“堆叠”的过程,那么你的“AOP”代码就要明确自己关注的是哪个层次,仅为那个层次的语言编写横切逻辑即可
如果对普通业务代码和其它 AOP 代码不做区分,通通都要 AOP,并且一定要让被植入逻辑的目标代码对此一无所知,这个难度并不小,但这对 java 也是一样,因为这更象是对 AOP 代码进行 AOP,然而 java 工程师们并没有为此纠结,因为这个问题本身也许是个伪命题。
明白为什么这么写了,自问自答一下:前一种支持直接 include X,然后调用内部方法,后一种避免了 include 以后污染当前变量空间
1.9.3p327 :001 > module X
1.9.3p327 :002?> extend Module.new {
1.9.3p327 :003 > def hello; 'hello'; end
1.9.3p327 :004?> def world; 'world'; end
1.9.3p327 :005?> }
1.9.3p327 :006?> end
=> X
1.9.3p327 :007 > X.hello
=> "hello"
1.9.3p327 :008 > include X
=> Object
1.9.3p327 :009 > hello
NameError: undefined local variable or method `hello' for main:Object
from (irb):9
from /home/john/.rvm/rubies/ruby-1.9.3-p327-falcon/bin/irb:16:in `<main>'
个人感觉,以这个要求的话,时薪有点低
再补充介绍一下,据个人不完全了解,UX 团队现在需要人接手的有一个是发展了几年的 rails 应用,这个系统有很大的用户量和收入,所以既能锻炼技术(估计会有遗留代码,程序员都知道,重构是最能提高人技术水平的),又有很大的成就感(这一个应用的 PV 数就可以理直气壮的拿风投了)
#37 楼 @cricy 花名如彼,参见 http://ruby-china.org/topics/6784 BTW,是不是把你的花名也公开一下啊?方便大家吐槽 :-P
也许限制的不好还不如不限制
这个时间不慢啊