#4 楼 @yedingding 你这算自报名么?我去不了,可有链接供参考吗?
DHH 以前好像说过,rails is not for beginner,台湾的那个兄弟(就是几年前总结 best practise 的那个,名字一时想不起来)也说过,如果你的思路和 DHH 一致,那么 rails 很爽,否则很困难。 至于 ruby,我一直觉得它最大的价值就是发明 DSL,几十年前的老程序员通过发明一种语言解决某个领域的一片问题,现在我们可以用 ruby 发明自己的 DSL,性质一样,只是更简单,而 rails 是其中名气最大的 DSL 集合。
#15 楼 @zw963 用 pry 的的 show-method 就行了,c 源码也能看一些
$ pry -r ./config/environment
[1] pry(main)> show-method Array#each
From: array.c in Ruby Core (C Method):
Number of lines: 11
Owner: Array
Visibility: public
VALUE
rb_ary_each(VALUE ary)
{
long i;
RETURN_ENUMERATOR(ary, 0, 0);
for (i=0; i<RARRAY_LEN(ary); i++) {
rb_yield(RARRAY_PTR(ary)[i]);
}
return ary;
}
另外楼主把 html/css/js 当成是 Web 开发的汇编语言比较偏颇,汇编语言其实可以看作是对硬件系统建立的一个软件层接口,这里面重要的是映射机器指令,对问题域的抽象很少,而 web 的各个标准则不同,它们反映的是对问题域的抽象。如果非要作类比,我觉得倒是可以和 lisp 这种语言作对比,因为后者反映的也是图灵机这种抽象
说 web 死了的人多了去了,但除了少数在 web 基础上做改进的牛人以外,大多数人其实没理解 web 的牛 X,以前发过帖子说过我对 REST 的佩服之处,这些正是 Web 的精华,从里面摘两句:
REST本身不是架构,只是一种架构风格,理解它的时候要参考这个架构风格出现的环境所施加的约束条件。
REST的目的是“建立十年内不会过时的软件系统架构",所以它具备三个特点:
1. 状态无关 —— 确保系统的横向拓展能力
2. 超文本驱动,Fielding的原话是”hypertext-driven" —— 确保系统的演化能力
3. 对 resource 相关的模型建立统一的原语,例如:uri、http的method定义等 —— 确保系统能够接纳多样而又标准的客户端
从另外一个角度看,第一条保证服务端独立演化,第三条保证客户端独立演化,第二条保证应用本身的自由演化,这实在是一个极具抽象能力的方案。
#28 楼 @geekontheway 这个比 @hysios 的差一些:chars 比 split 的语义更清晰,而且很可能性能更好,flatten 在 join 之前用是多余的
楼主在杭州吗?我之前在旺旺群里提过一个想法,在 ruby tuesday 的时候可以时不时加入一次源码阅读的活动,阅读的对象可以就是这些 gem,当然组织这样的活动需要预先稍作准备,但是大家轮流负责应该问题也不大
不错阿,深圳的兄弟们加油
续:今天重新试验了一下,发现可能是 spork 没有重新装载的问题,修改代码以后如果完整的跑一下 rspec 是没有问题的,但是如果用--drb 单独跑指定的那个测试用例的话,就会出现前面的问题,关掉--drb 单独跑那个 spec(这时环境重新装载)也没有问题
BTW:我改一下帖子标题
看来是我没说清楚,应该用 dup 而不是 clone,这个我们都知道,我的问题是,rake spec 在代码为 clone 的情况下依然会通过测试,这个就很郁闷了,那我还怎么相信我的测试集呢
@hysios 的代码很棒阿,使用 api 特别恰当,学习一下
#17 楼 @poshboytl 这个写法挺有趣的,非常醒目
真正要写注释的地方是比较少的(比如各种 API,就比较有必要),其它的所谓需要写注释的地方很多可以通过 extract method 来解决
楼主的要求很吸引人阿,加上 Pro Git/Github的经历,各种关注吧