#23 楼 @PlayMonkey 忘了留联系方式,我更新一下主贴
@saito 如果是实现白板类,那么 classloader 很有用,它就是搞了一个 new world,所以很干净
不过如果仅仅是取消继承类,那么 classloader 解决不了这个问题,比如你希望的是类 X 不再继承类 Y,那么我认为你的目的是让所有用到 X 的地方都 assert 下面的表达式
X.new.is_a? Y == false
然而 java 的 cl 不是这个意思,它是 build 了一个 new world,在这里面 Y 不是 X 的父类(原来的那个 world 里,Y 依然是 X 的父类)
换个角度看,classloader 机制导致的结果是,我们不能通过类名来识别一个类,而是要用 classloader + 类名组合来识别,在这个意义上,我们不能改变类的继承关系(只能创建新的类——用 cl+ 类名标识)。所以我一直认为 classloader 好处有限,麻烦多多
楼主的帖子写的很细致,赞一个。 我的做法是把 loading line 放到 .bashrc 中,然后在 .bash_login 中装载 .bashrc
没想过这个问题,楼主能提供一个应用场景么?
正常情况下,选前者会带来后者,选后者不一定带来前者,so... 当然,如果是非正常情况......你只要判断这种异常情况会持续多久就行了
能用好 ruby 的应该都是程序员(当然好程序员也可能不喜欢 ruby 的风格),不过国内很多培训和教育机构输出的是程序匠
QQ、旺旺在 linux 下真的很麻烦,我们小团队之间沟通用 gtalk,搞个机器人就是群,非常方便,标准协议,客户端不要太多,历史记录完全无压力
你的应用核心功能是不是通过 neo4j 完成的?如果是,那么最好迁就它,否则要看你平时熟悉哪个平台,如果一直用 c ruby,改用 jruby 还是有些成本的
java 的异常机制太机械,所以不好。但是 ruby 中如何使用我也有些不确定,应该说异常机制可以让主流程更清晰,但是什么是“异常流程”,这个没有简单的判断方法。
通常,如果外部可以统一处理的,那么我们把这个流程剥离出去一致解决是很好的,不过由于 ruby 本身的表达能力和动态特性,这种”统一处理“错误的场景并不是必须要用异常机制的。
另外还有一个因素,java 代码的规范一般要求不要用异常来做分支处理,主要原因是异常成本很高,但是 ruby 的异常成本是否也很高我就不知道了,求解释
真好玩,谢楼主啊
拜楼主提问题的方式,有背景有分析,有自己的尝试,文字也没什么歧义,要是大家都这么问问题多好啊