学习 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 代码注定是不行的。。
理论上是可以完整解读源码的,实际上不大可行。有解读 linux 源码的书,没见过完整解读 rails 源码的书,有讲片段的,不算。
单从实用的角度,还是做一些项目比较可行。按照 3.0 原则,做三个项目基本上就学会了。 可以适度参考下源码,就我而言,能看懂部分,有些元编程的代码确实很难理解的。 写应用接触最多的就是 route+active record,可重点学习下。
在 github 取一份 rails 的 git,经常看他们的提交,是个不错的方法 以前的代码只能遇到问题多到代码里去找原因 rails 的代码全读是很难的,因为到处都是魔法糖,但是偶尔读一个小模块,是很容易而且有意的
#12 楼 @crazyjin 觉得可以考虑下 Julia,现在 0.4,性能和语法都很好,而且是动态语言。type inference 语言自己做了,做得据说还不错,毕竟是 MIT 那帮人搞的,而且还有人专门做性能优化。
web 框架有 https://github.com/JuliaWeb/Morsel.jl 。