写点什么

跟 Michael Hartl 学习 Ruby on Rails

  • 2011-05-09
  • 本文字数:2566 字

    阅读完需:约 8 分钟

学习一门新语言很容易让人焦躁,人们也往往不知从何处开始着手。要是再同时学一个新的 web 框架,那可就真的是找不着北了。

Ruby 始创于上世纪 90 年代 ,日渐为人熟识。 Ruby on Rails 也成了耳熟能详的名词,越来越多的公司在用它快速搭建 web 应用。

要学一门新语言和一个新框架,该从哪儿开始学呢?这方面的好书有很多,有些是写给新手的,有些则是给老鸟看的。

不管你用的是 Java 还是.NET,或者其它任何语言,都可以通过 RailsTutorial.org 来学习 Ruby on Rails 3。这个网站是 Ruby 专家 Michael Hartl 创建的,其宗旨就是为 Ruby 新手提供服务。而且无论你是喜欢看书学习还是看视频,这网站上都有。

我们最近跟 Michael Hartl 聊了聊他是怎么教别人 Ruby On Rails 的,还谈到了他的新书" Ruby on Rails 3 Tutorial "。经过作者允许,InfoQ 现提供该书的第八章下载,章节名"Sign Up"。这章讲述的是如何在Rails 应用中创建一个用户注册页面。

Robert Bazinet (RB):来给我们介绍一下你的背景吧。

Michael Hartl (MH):我是个程序员、教师、企业家。我跟人合写过 RailsSpace 这本书,2007 年出版的,曾经在 Rails 指南类图书中名列前茅。我跟人一起创立了 Insoshi,它是用 RoR 开发的一个比较流行的社交网络平台,我还是其中的技术领导。之前我在加州理工学院教过理论物理和计算物理,2008 年我参加了 Y-Combinator 企业家计划。

RB:给我们介绍一下 Ruby on Rails 3 Tutorial 这本书如何?

MH:这本书讲的是怎样用 Ruby on Rails 开发并部署一个真实的、工业强度的 web 应用。Ruby on Rails 是一个开源的 web 框架,已经用在了很多顶级 web 站点上,比如 Twitter、Hulu、Yellow Pages。

RB:什么类型的程序员应该读这本书呢?

MH:只要是对用 RoR 开发 web 应用感兴趣的人都可以读。

RB:我看到你还提供了一系列的 Rails 3 视频教程,这些视频是补充书里面的内容呢,还是完全不相关呢?它们跟书有什么区别呢?

MH:嗯,绝大多数视频还是跟着书走的,它们主要还是提供了跟读书完全不同的学习体验。就像是根据书改编的电影一样。

RB:Railstutorial.org 网站上免费提供了这本书的所有内容。你为什么把它免费开放呢?

MH:免费内容算是一种商业策略吧。这里面放了站内链接,可以点击某些词直接打开搜索引擎搜索,也有大量的参考资料,不计其数的优秀经验总结。

RB:你觉得对于新人来说,Rails 3 比 Rails 2.5 要好很多么?

MH:Rails 3 的内部结构比 2.3 要干净的多得多,但是对于普通的程序员来讲,我觉得区别并没有那么大。Rails 3 和 2.3 最大的不同在于,Rails 3 的公共 API 在设计上已经稳定了,既然这个框架还会不断向前发展,那新手还是用 Rails 3 会比较容易,因为 Rails 3 在版本更迭的时候不会有那么多东西被破坏。

RB:如果是一个有经验的程序员,你觉得他该怎么学 Rails 才最合适,又怎样才能把这个框架引入公司呢?

MH:如果是内部推销这个框架的话,我建议去看看那些成功使用了 Rails 的网站。至于学习 Rails,我觉得一本书加上一系列配套视频就够了。

RB:我们的读者大多数都是企业应用的开发者,你觉得 Rails 3 已经适合企业应用了么?你觉得它能跟当前的企业级语言相比么?比如 Java 和 C#?

MH:我从没有过 Java 和 C#的开发经验,所以我没法拿它们跟 Ruby 比,我对 Java 和 C#的 web 框架也不熟。但是从 Rails 在那些高访问量网站──比如 Twitter、yp.com、Groupon──的使用情况来看,Rails 做企业应用肯定是没问题的。

RB:企业应用常常都要涉及到很多独立系统的集成点。你觉得 Ruby,尤其是 Rails,能够为企业级开发者提供这种类型的支持么?Ruby/Rails 比其他语言和框架更容易做集成么?

MH:我没有多少企业级应用的开发经验,但我知道有很多公司,比如 Linkedin,用的是 JRuby on Rails,这样就能和他们的 Java 应用很自然的交互了。因为反正你最后得到的也是的 WAR 包,跟其他 Java web 应用一样部署就是了。

RB:那你在哪方面的背景知识对这本书起到过帮助呢?

MH:Web 开发很困难,比绝大多数人意识到的都要困难得多。我从前教过物理,这些经验能够让我预料到 Rails 哪方面的内容容易让人困惑。我在加州理工教核心的课程教了五年,我在不断的把要传授的内容(主要是力学和电动力学)拆分成容易理解的片段,不停的预测哪些地方比较难理解。我在写 Ruby on Rails Tutorial 这本书的时候,也用了同样的方式。

RB:你还想跟读者讲点什么别的东西么?

MH:我常常半开玩笑的把自己叫做”反圆周率领袖 “。我去年写了篇论文,叫做” Tau 宣言“,里面提出用一个新的符号来表示一个重要的数学常量:tau = 周长 / 半径,而不是 pi = 周长 / 直径。我还创立了一个节日:Tau Day,在 6 月 28 号,跟 3 月 14 号的 Pi Day 对着来。这个项目得到了广泛关注,还上了 New Scientist 和 CNN.com。

如果你看一下 Tau 宣言的话(译者注:需要翻墙),你会发现它的在线排版格式非常好看,也有 PDF 版本,就跟 Rails Tutorial 那本书一样。这可不是什么巧合,我这些文档都是用自己写的 Ruby 程序生成的。这个程序教 PolyTeXnic,是基于 LaTex 系统开发的。我希望将来有一天可以把 PolyTeXnic 开源了,帮助其他人可以做出非常精美的在线技术文档(当然还有迷人的 PDF)。

RB:非常感谢。

想阅读 Michael 的在线图书的读者可以访问 Ruby on Rails Tutorial 网站。在网站上还可以找到图书和视频的购买地址。

参加 2011 年 5 月 16 日至 19 日在 Baltimore 举办的RailsConf 大会的听众,可以去听 Michael 关于“ Rails 入门 ── 第一、二部分”的话题.

关于图书作者

Michael Hartl 是个程序员、教师、企业家。他跟人合写了 RailsSpace 这本书,2007 年出版,曾经在 Rails 指南类图书中销量名列前茅。他跟人一起创立了 Insoshi──用 RoR 开发的一个比较流行的社交网络平台,他还是其中的技术领导。之前 ta 在加州理工学院教过理论物理和计算物理,获得了优秀教师终身成就大奖。Michael 从哈佛毕业,在加州理工拿了物理学博士学位,并参加了 Y-Combinator 企业家计划。

本书的出版社 Addison-Wesley 把配套视频做成了 DVD,同书一起销售

查看英文原文: Learning Ruby on Rails with Michael Hartl


给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2011-05-09 00:005039
用户头像

发布了 197 篇内容, 共 54.5 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

Apache APISIX 社区周报 | 2021 8.30-9.12

API7.ai 技术团队

Apache 开源 API网关 APISIX 社区周报

乘着汽车智能化的浪潮,“汽车人”职业方向的选择(一)

SOA开发者

软件 职业成长 汽车

计划会议要开始了,产品负责人却没来…

华为云开发者联盟

Scrum PO 开发团队 计划会议 Sprint

数据中心建设很复杂,但选择却能很简单:华为数据中心的多维创新

《鸿蒙理论知识02》HarmonyOS开发平台和工具

孙叫兽

鸿蒙 HarmonyOS 鸿蒙系统 引航计划

疯狂涨知识,spring全方位深入探索,

Java 程序员 后端

穿越时空,跟我一起探索云栖数字谷(2021云栖大会免费送票)

阿里云视频云

人工智能 云计算 阿里云 行业资讯 视频云

《鸿蒙理论知识06》HarmonyOS概述之应用开发基础知识

孙叫兽

鸿蒙 HarmonyOS 鸿蒙系统 引航计划 领航计划

架构实战课程 模块三作业

Frank

【LeetCode】链表中的下一个更大节点Java题解

Albert

算法 LeetCode 9月日更

疯狂复习半个月,全栈系统化的学习路线

Java 程序员 后端

《鸿蒙理论知识03》HarmonyOS概述之系统安全

孙叫兽

鸿蒙 鸿蒙开发 鸿蒙系统 引航计划

《鸿蒙理论知识05》HarmonyOS概述之下载与安装软件

孙叫兽

鸿蒙 鸿蒙系统 引航计划

简单聊聊汽车OTA给OEM和Tire1带来的变化

SOA开发者

程序员 职业成长 汽车

疯狂复习20天卷土从来,Java面试真题解析火爆全网

Java 程序员 后端

疯狂复习半个月,rocketmq原理面试题

Java 程序员 后端

模块3-作业

笑看风雨情

如何将外连接向内连接转换?

华为云开发者联盟

sql 数仓 GaussDB(DWS) 外连接 内连接

Opus从入门到精通(二):编解码器使用

轻口味

android 音视频 编解码 9月日更

疯狂复习半个月,三面蚂蚁金服(交叉面)定级阿里P6

Java 程序员 后端

netty系列之:在netty中处理CORS

程序那些事

Java Netty 程序那些事 响应式系统

疯狂复习20天卷土从来,tomcat原理及优化

Java 程序员 后端

《鸿蒙理论知识04》HarmonyOS概述之系统定义

孙叫兽

鸿蒙 鸿蒙系统 引航计划

28分钟完成一款Python游戏,《客服戏翻总裁牌》

梦想橡皮擦

9月日更

Vue进阶(幺幺玖):element-ui table组件适应性问题(横向滚动条)

No Silver Bullet

Vue 9月日更

手撸二叉树之恢复二叉树

HelloWorld杰少

9月日更

疯狂复习20天卷土从来,2021Java笔试题总结

Java 程序员 后端

3年才能驾驭新技术,不如试试这个低代码魔方

华为云开发者联盟

低代码 开发 华为云应用魔方 应用程序 魔方

Python——静态方法与类方法、类的导入

在即

9月日更

MapReduce 示例:减少 Hadoop MapReduce 中的侧连接

华为云开发者联盟

hadoop mapreduce 排序 侧连接 联接

分布式系统中协调和复制技术的原理

博文视点Broadview

跟Michael Hartl学习Ruby on Rails_Ruby_Robert Bazinet_InfoQ精选文章