论坛首页 Ruby版 rails

Ruby On Rails-2.0.2源代码分析(1)-Rails的启动

浏览 6764 次
该帖已经被评为精华帖
作者 正文
时间:2008-03-19
或者用mind-map组织下大概的思路?
   
0 请登录后投票
时间:2008-03-19
beyondbin 写道
或者用mind-map组织下大概的思路?

和朋友一起玩过思维导图的游戏和练习,个人觉得:
1.从工具的角度来讲,似乎我没发现什么特别方便的mind-map工具,用手划十分不错,但是不好搞上网。
2.思维导图比较适合发散性问题的思考,我觉得我这种情况倒不如一些简单的流程图,类图来得直接。
研究得不多,个人观点而已。
   
0 请登录后投票
时间:2008-03-20
我觉得楼主在将事情复杂化。

我看了的 1 和 2 觉得很晕,特别是Router的代码分析,看上去更象代码复述。其中使用到的设计模式没有一个被提出。一些重要的可扩张方法,比如 Route::recognition_conditions RouteSet::extract_request_environment 竟被简化掉了。。。

不理解楼主的动机,是想要重构Rails还是hack Rails?

让我不禁想起很多年前看过的一本所谓《JavaScript宝典》的恐怖书....

dcheng 写道
srdrm 写道
你全都看完了,有一个广度,深度了,再来写吧. 要不你一会儿回头看你写的, 会觉得有点幼稚

我觉得为什么写出来要有一定的深度呢,在这里记录下来自己的学习过程也很好啊!
   
0 请登录后投票
时间:2008-03-21
halfmile 写道
我觉得楼主在将事情复杂化。

我看了的 1 和 2 觉得很晕,特别是Router的代码分析,看上去更象代码复述。其中使用到的设计模式没有一个被提出。一些重要的可扩张方法,比如 Route::recognition_conditions RouteSet::extract_request_environment 竟被简化掉了。。。

不理解楼主的动机,是想要重构Rails还是hack Rails?

让我不禁想起很多年前看过的一本所谓《JavaScript宝典》的恐怖书....

dcheng 写道
srdrm 写道
你全都看完了,有一个广度,深度了,再来写吧. 要不你一会儿回头看你写的, 会觉得有点幼稚

我觉得为什么写出来要有一定的深度呢,在这里记录下来自己的学习过程也很好啊!



有点汗。。。恰如halfmile同学所说的相反,我的原意是:首先将事情简单化。Rails的代码庞大高深,正如你所讲的里面有很多设计模式和重要的扩展方法,但是我开始所想的是,首先不能太照顾每一个细节,比如你所说的,recognition_conditions等重要的方法,我承认他们确实重要,不过,试想,如果我将下面的代码罗列出来:
      def recognition_conditions
        result = ["(match = #{Regexp.new(recognition_pattern).inspect}.match(path))"]
        result << "conditions[:method] === env[:method]" if conditions[:method]
        result
      end

我只怕没有深入研究过Rails的同学们看完会晕,但是如果我详细的讲解一个个内部的细节的话,那估计我写的东西就会变成老太婆的裹脚了。。。
至于我的动机,首先是学习。不过我不是想写Rails内部的API之类的。。。其次,我想先从一个比较高的角度,我认为比较好理解Rails的角度来讲解Rails。让没有读过Rails源代码的同学能从一个宏观的角度稍微了解Rails一些(当然,想要真的了解Rails,只能靠个人深入了)。
其实,我开始的想法就是,先从总体讲起,完了,再具体谈一些细节,比如你所提到的各种细节的模式,方法,应用,技巧等等。
最后,我写这些东西能让你这样读过源代码的同学都感觉到晕,想起当年的“恐怖”,真的有点惭愧了,看来我得好好思考一下自己的写作,总结方式了。感谢你的意见,你对任何东西有任何建议,欢迎来函来电。
   
0 请登录后投票
时间:2008-04-15
很好, 我在看本文前其实看过Rails的启动过程.

看了这遍文章.让我回忆了一下. 收藏(自己也不用写了)
   
0 请登录后投票
时间:2008-04-15
很好, 我在看本文前其实看过Rails的启动过程.

看了这遍文章.让我回忆了一下. 收藏(自己也不用写了)
   
0 请登录后投票
论坛首页 Ruby版 rails

跳转论坛:
快速回复 引用上一条消息 (Alt+S)