新手问题 Ruby on Rails 入门体验

anthony · 发布于 2013年04月15日 · 最后由 Anthony 回复于 2013年04月17日 · 6433 次阅读
96

前言

我是一名刚刚接触 Ruby 和 RoR 的开发者,之前参与的项目大多和c++,java,oracle 相关,没怎么接触过脚本语言的web开发,目前从事ActionScript开发,也还是感觉和php这类相差太远。最近刚刚看完 RoR Tutorial那本网上教程,大概是缺乏基础,有点无所适从,看来得从更基本的学起,与新手共勉,望高手指点,谢谢。

今年年初时决定学习一下 Web 开发方面的知识,因为对 Ruby 早有耳闻,所以很自然地就选择了 Ruby on Rails 作为目标。在网上看到 Ruby on Rails Tutorial的教程,于是就跟着教程,边学边做地把这本书看完了。对 RoR 有了一个大概的了解,包括框架结构和开发流程,还有一些常用的Gems,确实是一本不错的实践入门书。

关于教程

一开始时看的是英文原版,阅读速度缓慢,而我对实践充满热情,迫切希望早点学完自己动手做。恰好发现 Andor Chen 已经翻译了大部分章节,遇到有疑问的地方,就对照英文检查语句和代码。顺便修正一些译文里的错误,然后发送 pull request 让作者合并。

这本书和以前看的 Flex 入门书——《Flex 3 权威指南》类似,都是以构建一个应用为主线,由浅入深地介绍 RoR 开发的基本知识,从最开始的静态页面到模型生成,控制器,路由,数据库,Ajax,还有贯彻整个开发过程的测试。教程里开发的是一个微博站点,而 Twitter 以前就是使用 RoR 开发的,做起来也饶有趣味。

花了差不多两个月的业余时间看完了这个教程,并最终完成了那个微博网站,包括大部分练习题的功能。总的来说,还是有点挑战的。由于书中大部分都是编写步骤,注重手把手的教学实践。在原理的介绍上篇幅很少,而 RoR 这样“约定优于配置”的理念让我有点不适应,书中并无约定方面的解释,很多方法像变戏法一般地已经实现好了,而我却想一探究竟,搞清楚其幕后的动作。但毕竟这是一本入门书,或许是我要求太高了。

关于Ruby

我本人对 Ruby 的理解还不够深刻,对很多特性不熟悉,Rails 框架的原理结构也没有去探究。虽然知道怎么用 Rails 怎么去做,但不懂原理,知其然而不知其所以然,颇有空中楼阁的感觉;另外之前工作中少有机会接触 PHP,Ruby 这类脚本语言开发的 Web 服务器程序,再加上对 JavaScript,jQuery,CSS 等 Web 基础的这类技术,疏于研究,现在来看实在是很不应该的。所以用脚本语言做 Web 开发对我而言比较陌生,但感觉入门并不难,假以时日,结合实际项目边做边学应该可以顺利掌握,毕竟这是 Internet 时代。正如约翰·卡马克所说,这个时代远远不同于他那个时代,现在很多信息都可以通过互联网找到,很多问题也可以通过互联网解决,而不是他开始时那样通过报章杂志,学术期刊。

对于 Rails,其性能一直是为人诟病的话题,前几天看到 Robbin 写的一篇提倡 去Rails化 的文章,介绍了 Ruby 各 Web 框架和其它技术框架的并发性能测试,Ruby 的性能并不差,但 Rails 并发性能确实不理想。“ruby on rails作为一个full-stack的web开发框架,并不适合用来开发Linkedin和Iron.io的后台web服务,从某种意义上来说,属于rails的时代已经过去了。” “总之Rails适合开发Website,但不太适合Web Service,而移动时代的发展趋势就是:未来服务器端会更多的使用Web Service而不是Website,这也意味着Rails将越来越不适合时代的发展。” 缺点显而易见,但是优点早已众人皆知。因此理性地做好技术选型,合理用好手中的技术才是比较实际的做法。

我想,下面该做的就是重新学习 Ruby 语言,然后再研究下 JavaScript,CSS 等 Web 基础,接下来再看看 Web 开发方面的框架,Rails,Sinatra,Padrino 或者 研究 PHP/Python 也说不定。

相关资料

共收到 11 条回复
2746

排版挺好,写博客里就可以了,没必要发这里。

207

樓主發在「新手问题」節點... 但是好像沒有提出什麼問題......

96

#2楼 @blacktulip 可能是废话太多,表述不清。因为以前没做过RoR,所以无所适从,不知道Web开发如何入手。比如不清楚很多“约定优于配置”的约定,习惯了“古代”手动写SQL,写存储过程的开发流程,有没有解释RoR框架结构,约定这方面的资料呢?

172

Robbin的文章新手其实不怎么适合去看,还是先把Ruby和Rails学好要紧。

1573

#3楼 @Anthony http://edgeguides.rubyonrails.org/

先从这里搞起,然后去看rails的源码,拣自己感兴趣的部分看,看到云山雾绕的地方就正好学习ruby;同时建议你去confreaks,youtube等地找各种RubyConf和RailsConf的演讲视频,里面有很多干货,不懂就直接google或stackoverflow询问,当然ruby-china也是非常好的选择。

另外选择几本书看看,比如 HTTP 协议的书,REST的书等等。

96

和lz有相同的困惑,明显的感觉到要熟悉ruby on rails,必须先弄懂ruby,web方面倒可以慢慢来,边做边学.另外极力推荐@zw963的这篇文章http://ruby-china.org/topics/2003 .

96

谢谢 @nightire 的指点,官网的guides里文档解释得比较详细,我居然把官网的资料漏了。 ror guides

@mengche1 我也这么认为。RoR tutorial 的作者也说,虽然可以先学 RoR,但是看完后最好还是要回头再学习 Ruby。而且没理解语言之前先用框架,有点本末倒置的感觉。

看来对来讲比较合适的线路就是:

  1. 学习 Ruby;
  2. 学习 Web理论基础:HTTP,REST...;
  3. 学习 JavaScript, CSS;
  4. 阅读 RoR 文档,理解框架;

有了理论知识做基础,动手做可能会事半功倍。感谢各位~

96

我和你差不多的经历. 我建议看ruby metaprogramming.

207
1. 学习 Ruby;
2. 学习 Web理论基础:HTTP,REST...;
3. 学习 JavaScript, CSS;
4. 阅读 RoR 文档,理解框架;

前三步每一步都能学好几年......

96

#9楼 @blacktulip 哈哈,精通的话肯定要的。我觉得起步的话,理解就差不多了,边做边学,学以致用,不然就失去了学习这些内容的意义。

96

#8楼 @hamxiaoz 谢谢,打算基础知识掌握后学习元编程方面的内容。

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