Rails 如何深入学习 Rails

crazyjin · 发布于 2015年04月21日 · 最后由 jasontang168 回复于 2015年04月27日 · 1922 次阅读
5485

学习Ruby on Rails有一两年了. 现在也一直在做rails相关的开发工作.但是总感觉自己rails的各方面都接触了一点, 但是对rails没有深入的理解. 以前看过<<深入理解计算机系统>>, 看到代码优化和cpu那两章的时候感觉太爽了. 看完csapp感觉自己对计算机的理解清晰多了. 现在搞rails, 虽然会用, 但是rails给我的感觉还是一团迷雾.

那么问题来了, 如何深入理解rails, 就像读csapp那么爽?

刚拉了rails的代码统计了一下:

f**x@ubuntu:~/tmp/rails$ find ./ -name "*.rb" -exec cat {} \; | grep -n '^\s*#.*' -v | wc -l
229790
f**x@ubuntu:~/tmp/rails$ find ./ -name "*.rb" -exec cat {} \; | grep -n '^\s*#.*' | wc -l
38679

代码229790行, 注释38679行. 完全阅读分析rails代码注定是不行的。。

共收到 21 条回复
De6df3

有空可以多看 http://api.rubyonrails.org 里面有很多的内容

2653

是否可以考虑从零构造一个类Rails框架?记得以前xdite推荐过类似课程。貌似最好的理解就是重新造轮子。

A9642e

Owning Rails

5485

#1楼 @huacnlee i'll have a try.

5485

#2楼 @chunlea 严重同意,但是重造一个轮子代价太大了

2653

#5楼 @crazyjin 不一定要造成功的…… 😄 重点在过程中的各种踩坑。

121

我觉得写一个 Rails Engine 的 gem 就明白很多了, 或者去看看 devise 的源码.

3469

#5楼 @crazyjin 代价大,学到的也多,不厌其烦。

4215

理论上是可以完整解读源码的,实际上不大可行。有解读linux源码的书,没见过完整解读rails源码的书,有讲片段的,不算。

单从实用的角度,还是做一些项目比较可行。按照3.0原则,做三个项目基本上就学会了。 可以适度参考下源码,就我而言,能看懂部分,有些元编程的代码确实很难理解的。 写应用接触最多的就是route+active record,可重点学习下。

5485

#9楼 @chenge 我感觉完整阅读rails的源码从实际情况上来讲几乎不可能的, 理由:

  1. rails本身变化很快 2.每个人能掌握代码量是有限的,以前听大牛说10W就是极限, 而我自己吃力地维护过5W行的C. 同时源编程会增加难度. 3.时间精力都是有限的, 谁上班累趴了下班还来啃源代码

重点学习是个不错的注意.

5485

#7楼 @lyfi2003 是个好主意. 貌似写devise的大牛是写rails的. 写devise也用到很多rails的机制.

felix@ubuntu:~/tmp/devise$ find ./ -name "*.rb" -exec cat {} \; | grep -n '^\s*#.*' -v | wc -l
12850
felix@ubuntu:~/tmp/devise$ find ./ -name "*.rb" -exec cat {} \; | grep -n '^\s*#.*' | wc -l
2158

源代码只有12850行.

5485

#8楼 @liwei78 确实是, 但是如果真要趟坑的话就应该在未开垦的领域去趟, 比如golang刚出来的时候, 这样更有价值.

713

在github取一份rails的git,经常看他们的提交,是个不错的方法 以前的代码只能遇到问题多到代码里去找原因 rails的代码全读是很难的,因为到处都是魔法糖,但是偶尔读一个小模块,是很容易而且有意的

7072

#12楼 @crazyjin 觉得可以考虑下Julia,现在0.4,性能和语法都很好,而且是动态语言。type inference 语言自己做了,做得据说还不错,毕竟是MIT那帮人搞的,而且还有人专门做性能优化。

web框架有 https://github.com/JuliaWeb/Morsel.jl

5485

#15楼 @yfractal Julia is a high-level, high-performance dynamic programming language for technical computing. 貌似是用来做科学计算的, 为嘛搞个web框架?!

7072

#16楼 @crazyjin 跑偏了吧。。。:)

其实觉得Julia更像通用语言。语法挺好的,速度看起来也很快。

121

#14楼 @crazyjin 新人去看 devise 有点难是正常的, 如果想进阶, 我觉得还是非常有必要的. 这个难度相对 Rails 好很多.

5485

#17楼 @yfractal 跑偏了.不过作为一个前C程序员, 我对golang更感兴趣. 比起动态语言来, 程序清晰, 不会有太多的语法糖和dsl, 性能过得去,语言级支持并发, 云计算领域前途无量.

5485

#18楼 @lyfi2003 谢谢 lyfi2003的建议, I'll have a try.

18464

专业去学

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