译者序

译者序

第 4 版序

曾经有同事问我,为什么这么喜欢 Ruby ?我的回答是,因为 Ruby 非常有趣,用 Ruby 写程序是一件快乐的事情。对方满脸困惑,似乎在质疑——写程序也能让人感到快乐?的确,现在不少人认为编程是一件又苦又累的差事。代码搬运工、码农等大家的自嘲语也很难让人把编程与快乐联系在一起。回想当初刚学习编程的时候,我们曾因为实现了某个算法、某个功能而感到兴奋,而工作后却被项目进度、加班等压得喘不过气来,似乎已经忘记了编程原本是一件令人快乐的事情。

“快乐编程”是本书的主旨,也是 Ruby 令人着迷的原因之一。本书继承了日语技术类书籍的优良传统,采用了大量图、表、例子,讲解通俗易懂。从编程基础的数据类型、控制语句,到面向对象编程、鸭子类型、正则表达式等高级编程技巧,带领着读者逐步进入 Ruby 的程序世界,使大家沉浸在编程的乐趣之中。而对于久经沙场的“老鸟”们,Ruby 那如诗篇一样优雅的语法、各种魔术般的语法糖,以及能把我们从枯燥无味的重复劳动中解放出来的丰富强大的类库,都一定都能唤起大家的“集体回忆”,让大家重拾已经失去的编程乐趣。

2007 年接触 Ruby 后,我就喜欢上了这个“小家伙”。偶然一次机会,我从 Ruby China 社区得知图灵公司正在寻找这本书的译者。非常幸运,我得到了这个宝贵的机会。在此非常感谢图灵公司以及 Ruby China 社区,也非常感谢翻译过程中图灵公司各位编辑给予的帮助。

这是我第一次译书,其间所耗费的时间与精力远远超出了当初的预期。翻译期间,我牺牲了很多与家人共处的时间,在此深深感谢家人们的谅解、关心与支持,同时也非常感谢朋友们、同事们在这段日子里给我的鼓励与支持。

参与本书的翻译,是我人生中一次奇妙的经历。记得以前我曾经对计算机硬件非常着迷,经常阅读硬件杂志。记得当时有一本计算机硬件入门杂志,整本都是采用彩色铜版纸印刷,图文并茂,手把手地教读者装配、使用计算机。不过慢慢地,有读者抱怨内容太浅显,希望作者能写点高深的内容。当时杂志编辑的一段回复,到现在我还记忆犹新,大意是“我们的任务就是迎接更多的新朋友,同时让更多的老朋友抛弃我们,当你觉得我们已经无法满足你的求知欲时,那么恭喜你,你已经毕业了,我们的任务也完成了”。这也是我此刻的心情。

最后,预祝大家通过本书都能找到属于自己的 Ruby 快乐编程之道。

 

何文斯

2014 年 5 月 4 日,写于广州

第 5 版序

转眼间 Ruby 已经完全过渡到了 2.x 时代,进入而立之年的 Ruby 已经不是以前人们眼中的“玩具”了。

现代软件开发语言正以我们难以想象的速度发展着,在业界有着举足轻重作用的 Ruby 也不例外。Matz 在京都举办的 RubyKaigi 2016 上说过,希望 Ruby 3 能在 2020 年东京奥运会举办之际发布。Ruby 3 会给我们带来更多令人兴奋的特性,同时也会解决现在 Ruby 遇到的一些问题,例如性能、并发、过于灵活的动态类型等。但不管 Ruby 怎么变,“快乐编程”这个主旨是永远不变的,或者说 Ruby 所做的改变都是为了让所有 Ruby 开发者快乐。

在这个 Ruby 承上启下的关键时期能再次参与《Ruby 基础教程》第 5 版的翻译,作为一个 Rubiest 我感到非常地荣幸,非常感谢图灵公司给我这个机会。翻译工作让我牺牲了一部分陪伴家人的时间,所以也非常感谢我的家人,特别是我妻子,谢谢你的理解、鼓励与支持。

Matz 提到过 Ruby 社区的人都很友善,国内的 Ruby China 社区也的确如此,衷心希望更多的开发者能加入 Rubiest 的大家庭,一起快乐编程!

 

何文斯

2017 年 4 月

目录

  • 版权声明
  • 推荐序
  • 译者序
  • 前言
  • 第 1 部分 Ruby 初体验
  • 第 1 章 Ruby 初探
  • 第 2 章 便利的对象
  • 第 3 章 创建命令
  • 第 2 部分 Ruby 的基础
  • 第 4 章 对象、变量和常量
  • 第 5 章 条件判断
  • 第 6 章 循环
  • 第 7 章 方法
  • 第 8 章 类和模块
  • 第 9 章 运算符
  • 第 10 章 错误处理与异常
  • 第 11 章 块
  • 第 3 部分 Ruby 的类
  • 第 12 章 数值类
  • 第 13 章 数组类
  • 第 14 章 字符串类
  • 第 15 章 散列类
  • 第 16 章 正则表达式类
  • 第 17 章 IO 类
  • 第 18 章 File 类与 Dir 类
  • 第 19 章 Encoding 类
  • 第 20 章 Time 类与 Date 类
  • 第 21 章 Proc 类
  • 第 4 部分 动手制作工具
  • 第 22 章 文本处理
  • 第 23 章 检索邮政编码
  • 附录
  • 附录 A 搭建 Ruby 运行环境
  • 附录 B Ruby 参考集
  • 后记
  • 谢辞