新手问题 学到什么程度可以看 ruby-china 的源码?

chairy11 · 2013年01月10日 · 最后由 chairy11 回复于 2013年01月14日 · 4194 次阅读

刚看了华顺的帖子说新手不要看 ruby-china 的源码…… 可是我目前能找到比较权威一点的项目代码貌似就是 ruby-china 和 shopqi 的…… 不过看得蛮痛苦,很多看不懂……

硬着头皮把 Ruby on Rails Tutorial 多读几遍,将这本书的例子重复写一两遍。会慢慢有感觉的,不要着急。ruby-china 使用了很多技术,这些技术对新手都是"坑"

正在跟着《Ruby on Rails Tutorial》写代码中,中间自己写了点代码,再回来继续跟着教程做又有了新的感觉。

看 RailsCasts-China 的代码

感觉学习这个靠两个字,逼和泡。有个项目逼着,有点压力,带着问题。泡就是投入时间,天天看。

rails 就像一个迷宫,知识多而散,还有点烦。急不得,没有一两年的功夫是学不好的。

我當時看的 ruby-china 和 codecampo 兩套代碼,看不懂的地方自己 Google 解決,幾乎都能看懂的時候 Rails 就入門了

#4 楼 @chenge 恩,就是觉得挺散的…尤其每个 GEM 好像都又得学一下……

#6 楼 @chairy11 主要知识点:ruby 常识,route,mvc,还有就是 gem。 不知道你是困惑于哪一个部分。我感觉 route 部分可能容易迷惑。

我目前也是个初级水平,目前的项目还相对简单。暂时没有用 devise 这些东东。 我在看 rabel 的源码,感觉也不好懂,准确地说是浏览下。

#4 楼 @chenge 哗,一两年……好痛苦……其实,我已经快一年了……

#3 楼 @yedingding 这个代码特点是什么?评价一下罗~

#5 楼 @cqpx 一般怎样 google 法?可能我 google 技巧不太行,教我两招呗!另外,codecampo 这个代码特点是什么?评价一下?

#10 楼 @chairy11 提取出关键词就行了 一般要英文关键词。

#8 楼 @chairy11 我 05 年接触 ruby 和 rails,你算算我多少年了,自认还是个初中级水平。当然我没有全职做 rails 开发。

不用气馁,Matz 也不会 rails 的,似乎他也不大感兴趣。

建议你把想看懂的列出来,看码友们能否帮你。

#12 楼 @chenge 嘿嘿,好多问题太低级了,我都不好意思发问……比如看到 model 代码里有一句:field :image,我隐约感到它是指把多列信息组合成一个 image 整体属性,但又无法确认,不知道怎么查……

#13 楼 @chairy11 这个是调用 field 方法吧。要确认下是什么 api。

没什么,大胆问。ruby 社区以友好出名的。

#14 楼 @chenge 恩,谢谢:)

找一个你想实现的功能,看看 ruby-china 是怎么实现的,这样应该简单些,知道了原理,接下来就自己去实现吧。其实有些功能也不需要 gem,能自己写就自己写,如果别人用了 Gem,你还得去看一下这个 Gem,这样就分散的精力。看源码,我觉得应该把这个大问题分割为一个一个的小问题,然后每次解决一个

#17 楼 @zhenjunluo 怎么说呢?就是觉得整套源码像是一个复杂的系统,一环接一环的,有时不知道怎么分解成一个个小块来研究……

同样的功能,每个人写出来的代码都不一样,具体表现就是他们抽象成了几个函数,这些函数之间的调用关系,要具体看懂这些函数的执行流程还是蛮累的,抓住关键点就行了,你可以在某个 controller 里面加 debugger,然后调试,接下来你就可以取到 request 中的数据,觉得关键的地方就在 debugger 中运行 irb,这样就可以边调试边在 irb 中写一些代码来处理这些数据,debugger 中可以运行 irb

为什么要读代码...

#20 楼 @bhuztez 为了学习啊!你们在学会做项目之前,都不读代码的么?我以为,写程序就像写文章,读多了,才会写……

#19 楼 @zhenjunluo WOW,你说得好深奥,我要消化一下……

#22 楼 @chairy11 debugger 的使用参看这篇文章,http://hlee.iteye.com/blog/361405, 我一般用到 n,c,irb 这几个命令,接下来就可以直接使用 rails 提供的 API,request() 用来获得每次一请求的数据,params() 查看 parameters,request.methods.grep /para/ 来过滤多余的方法,还有好多方法你都可一在 debugger 中做实验,quit 命令用来退出 irb

ruby Module 中的很多方法很有用的,可以用来查询某个对象

要是有人出来把 ruby-china 的基本结构(包括数据库缓存)给写一写,新手看着可能就没那么糊涂了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号