先说一下,在写这篇文章的时候我刚开始阅读 rails 的源码,所以并不能以一个过来人的身份给出什么谆谆教导,这只是一个菜鸟探索过程的记录,也许有的想法幼稚,甚至谬误,但是又有什么关系呢。
在此之前,我已经写过一段时间的 ruby 代码,照着 *ruby on rails tutorial* 教程写过两三遍代码,看过两遍 rails 官方指南,以及读过我能找到的一些 rails 的书籍,包括:*the rails 4 way*、*rails 4 in action* 等。也能用 rails 写一些简单的应用,但一直感觉水平浮于表面。rails 的众多魔法不知道背后是怎么运行的,心里充满困惑。好奇心驱使,我想弄明白背后的原理。
诸如下面这些问题一直困扰着我:
当我在命令行敲下`rails s`的时候发生了什么?一个 rails app 意味着一个驻留在内存中的进程,还是仅仅只是一堆等待解释执行的静态代码?一个客户端请求是如何进入 rails,经过什么样的处理,最终又是怎样返回客户端的?rails 的 config 都有哪些配置可以用来设置?类似 device 这样的 gem 是如何与 rails 结合在一起的?
这样的问题还有很多,可能一时想不起来了,可能以后也还会有新的问题冒出来?阅读源码也许可以帮我搞清楚这些问题,消除神秘感。除此之外,阅读 rails 源代码至少还可以提高 ruby 语言和元编程的编码水平,增加阅读源代码的经验。
好吧,这就是为什么我要读源代码的大概的原因。