NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

跟 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:004870
用户头像

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

关注

评论

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

软件测试 | 测试开发 | Jenkins 集成 Android 代码检查

测吧(北京)科技有限公司

android jenkins

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | app自动化测试(Android)-- Capability 使用进阶

测吧(北京)科技有限公司

Andriod

TiDB v6.2 发版

PingCAP

#TiDB

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵社区

程序员 计算机 图论

开源治理的基本实践与指导原则

SEAL安全

开源 开源安全 软件供应链安全 开源安全与治理

易观分析&Pangle联合发布《全球新兴市场移动应用报告》

易观分析

新兴市场

软件测试 | 测试开发 | 常见接口协议解析

测吧(北京)科技有限公司

TCP

边缘服务网格 osm-edge 概览

Flomesh

Service Mesh 服务网格

软件测试 | 测试开发 | 测试人生 | 薪资翻倍涨至50W是种什么样的体验?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何使用代理配置快速定位接口测试脚本问题?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 疫情之下工资翻了2倍多,这4个月学习比工作8年学到的还多

测吧(北京)科技有限公司

软件测试

软件测试 | 测试开发 | 测试人生 | 双非学历入职名企大厂还薪资翻倍?

测吧(北京)科技有限公司

面试 测试

软件测试 | 测试开发 | 简单快速的从GitHub同步代码

测吧(北京)科技有限公司

git

内核实战教程第四期 _ 带你走进数据库 SQL 引擎

OceanBase 数据库

开学季 | Y 省教育厅这张卷,融云答出了100分!

融云 RongCloud

通讯协议

TDengine3.0计算查询引擎的优化与升级

TDengine

数据库 tdengine 时序数据库 企业号九月金秋榜

从原理剖析带你理解Stream

华为云开发者联盟

开发 企业号九月金秋榜

基于MonoRepo的Web端CI/CD实践与优化

RingCentral铃盛

企业号九月金秋榜

软件测试 | 测试开发 | app自动化测试(Android)--高级定位技巧

测吧(北京)科技有限公司

xpath

软件测试 | 测试开发 | 用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

测吧(北京)科技有限公司

pytest Allure

为什么资源隔离对HTAP至关重要?

OceanBase 数据库

TiFlash 源码解读(七)TiFlash Proxy 模块

PingCAP

TiDB TiDB 源码解读

fastposter v2.9.2 最简海报生成器

物有本末

海报生成器 电商海报 图片生成

【译】YouTube 架构

Rae

数据库 架构 youtube 后端技术

【译】日志:每个软件工程师都应该了解实时数据的统一抽象【一】

Rae

架构 分布式 日志 原理

Python代码用在这些地方,其实1行就够了

华为云开发者联盟

Python 开发 企业号九月金秋榜

你的秋日好运正在派件,请查收9月月更活动!

InfoQ写作社区官方

热门活动 9月月更

软件测试 | 测试开发 | app自动化测试(Android)--触屏操作自动化

测吧(北京)科技有限公司

自动化测试 app测试

宏杉科技加入阿里云PolarDB开源数据库社区

阿里云数据库开源

阿里云 polarDB 阿里云数据库 PolarDB-PG PolarDB for PostgreSQL

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