InfoQ

文章

Ruby的OOP与动态特性

作者 Hal Fulton译者 陈秋萍 赵子鹏 发布于 2007年11月9日 上午4时0分

社区
Ruby
主题
设计,
编程,
Ruby on Rails
标签
设计模式,
面向对象编程

本图书摘选来自Amazon网站销量最好的三本Ruby书之一《The Ruby Way》第二版的中文版《Ruby之道》,已由人民邮电出版社出版第11章,介绍了一些不常见或较高级的OOP技术以及一些常见的用法。同时介绍了一些设计模式的实现(以及一些不需要实现的模式),还讨论Ruby的反射API、Ruby的动态性导致的一些有趣的结果以及使用动态语言能够实现的各种技巧。

Ruby是一种面向对象的敏捷语言,借鉴了LISP、Smalltalk、Perl、CLU和其他语言的最佳特性。在本书第一版面世后的5年内,Ruby得以日益流行。《Ruby之道》采用“如何解决问题”的方式阐述Ruby编程,书中包含400多个按主题分类的示例。每个示例都回答了“如何使用Ruby来完成”的问题。首先对要完成的任务进行了描述,并讨论了技术方面的约束条件;然后逐步地阐述了一种优秀的解决方案。在过程中,作者辅以说明和解释来帮助读者理解。

本文作者Hal Fulton有着非常丰富的软件从业经历,早年他主要从事Unix系统相关的开发工作,在1999年首次接触Ruby,然后就一发不可收拾地爱上了这门语言。他先后参见了6次Ruby大会,并在其中的4次中发表过演讲,现在他仍然活跃在Ruby的邮件列表和IRC频道中,而且正在开发几个Ruby项目。也许正因为他对这门语言的热爱,才使得他写出了包括Ruby语言创始人松本行弘都为之赞叹的《The Ruby Way》,并亲自为这本书的第一版和第二版作序。在序中,松本行弘说:

“道”是很难形容的。我能够感受到它,但未曾尝试过用语言来解释它。这太难了,即使是用我的母语日语。但Hal Fulton这样做了,且第一次(本书的第一版)就做得很不错。由于得到了Ruby社区许多人的帮助,他的第二次尝试(即《Ruby之道》第二版)更出色。

征得人民邮电出版社的同意,我们将松本行弘的两个序言悉数加入到本摘选中,一起分享这位Ruby大师的珠玑之言。

本书涵盖如下主题:

  • Ruby概述,阐述了术语和基本原理;
  • 低级数据类型(数字、字符串、正则表达式等)的运算;
  • 新的正则表达式引擎(Oniguruma);
  • 国际化(I18N)和Ruby消息目录;
  • 散列、数组及其他数据结构(如栈、树和图)的运算;
  • 使用I/O、文件和持久化对象;
  • MySQL、SQLite、Oracle、DBI等数据库;
  • Ruby特有的OOP技术及动态编程;
  • Ruby图形界面(Tk、GTK+、Fox和Qt);
  • 使用Ruby线程实现轻量级多任务;
  • 将Ruby用于编写脚本和系统管理;
  • 使用图像文件、PDF、YAML、XML、RSS和Atom;
  • Ruby代码的测试、调试、剖析和打包;
  • 低级网络编程和客户/服务器交互;
  • Web开发工具,包括Rails、Nitro、Wee、IOWA等;
  • 使用分布式Ruby、Rinda和Ring;
  • Ruby开发工具,如IDE、文档化工具等。

请点击下载《The Ruby Way》(第二版)中文版第11章:Ruby的OOP与动态特性(PDF格式,57页)

1 条回复

回复

道在何方 发表人 Jerome Chen 发表于 2007年11月29日 上午12时45分
  1. 返回顶部

    道在何方

    2007年11月29日 上午12时45分 发表人 Jerome Chen

    这本Ruby之道马上就快看完了,整体来说还是非常不错的,但是我还是没有领会到“道”,真正的道在何方呢? 本书中的正则章节,字符串章节以及OOP等章节写的都非常不错。 --------------------------------------------------- [Ruby中文社区] - www.ruby-lang.org.cn

独家内容

Hadoop中的集群配置和使用技巧

本文介绍了Hadoop如何配置分布式框架运行环境,同时特别讲解了其中的一些细节。Hadoop可以单机跑,也可以配置集群跑,这里主要重点说一下集群配置运行的过程。本文是Hadoop入门实践三部曲的第二部。

JavaScript多线程编程简介

虽然有越来越多的网站在采用AJAX技术,但是开发复杂的AJAX应用仍然是个难题。本文探索了如何应用多线程缓解其中一些问题。

Ruby的开放类──或者:怎样避免动态打补丁

Ruby的开放类(Open Classes)功能强大,但很容易被误用。这篇文章关注于怎样减少使用开放类的风险,介绍了一些其他可替代的类似方法,并分析了其他语言如何实现类似的功能。

REST反模式

在本文中,Stefan Tilkov讲解了一些经常出现在自称“符合REST式设计”的应用中的反模式(比如:全部采用GET或POST,忽视缓存及响应代码,误用cookies,忘记超媒体与MIME类型,以及破坏自描述性等),并给出了避免这些反模式的对策。

分布式计算开源框架Hadoop介绍

Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。本文是Hadoop入门实践三部曲的第一部,主要讲述了What和Why的问题。

37 Signals的实用最小主义实践

本文结合37 Signals公司在开发Basecamp等产品时的实践,介绍了实用最小主义开发方法。实践证明,尤其是在开发Web应用时,这一方法非常有效。根据作者的观察,Google现在之所以那么成功,其所遵循的软件开发哲学和最小实用主义非常类似。

与林昊一起探讨OSGi

在今年5月份的网侠大会上,InfoQ中文站有幸与国内OSGi的先锋林昊(BlueDavy)在一起探讨了OSGi的相关话题,包括它的优势、复杂度以及Java下的实现等等。

超越F#基础——异步工作流

Robert Pickering在F#的第三篇文章中,他继续着上次的话题,不过这次他要关注的是异步工作流(Asynchronous Workflows),以及在使用这个特性后获得的性能改善。虽然这篇文章是关于F#的,但是这样的知识对于所有的.NET语言都是适用的。