写点什么

Ruby 的 OOP 与动态特性

2007 年 11 月 09 日

本图书摘选来自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 页)

2007 年 11 月 09 日 04:00781

评论

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

互联网人的娱乐精神之28岁退休 & P8和生活助理的故事

码农神说

程序员 漫画 退休

加密与解密

返町

新基建时代区块链应用场景进化

CECBC区块链专委会

新基建 区块链技术 去中心化 产业落地

Flink on Zeppelin (5) 高级特性篇

章剑锋_Jeff

大数据 flink 流计算 Zeppelin

TCP/IP协议族终于更新(第4版)了,世界著名计算机精选PDF美滋滋

周老师

Java 网络 计算机 TCP/IP 协议族

架构师训练营第三周

Melo

重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」

小傅哥

设计模式 小傅哥 重构 代码优化 责任链模式

思想不进化的人都是可怜人

Neco.W

提升认知 思考 进步 进化

数据库如何弹性伸缩?

Aaron_涛

数据库 架构 云原生

还在埋头干活?给程序员的几个忠告

四猿外

Java 深度思考 程序员 随笔杂谈 程序员成长

加入生财有术后,我获得了什么

Jay Wu

SharePoint 往事之:一句话让 SharePoint 罢工

手艺人杨柳

SharePoint

当你输入get/set命令的时候,Redis做了什么

老胡爱分享

redis 源码分析

为了kafka概念扫盲,写了万字长文(我看完吐了)

周老师

Java 大数据 程序员 分布式 Kakfa

架构师训练营第二周课后作业

赵凯

框架设计

为什么Web开发人员在2020年不用最新的CSS功能

Geek_Willie

CSS

必知必会,程序员都应该会的Linux的50个知识点!

Java小咖秀

Linux 面试 运维 Shell 经验

跨云厂商部署 k3s 集群

米开朗基杨

k3s wireguard

架构师训练营第三周-总结

无心水

极客大学架构师训练营

Cocoa 代码注释与文档生成

Edmond

ios CocoaPods 代码注释 Swift-Document iOS Document

如何写出高质量的代码?(浅谈代码规范、重构、单元测试的重要性)

Nick

单元测试 重构 代码重构 代码规范

Android APP启动白屏优化

小菜鸟学php

android白屏

一种极致性能的缓冲队列

小楼

Java 性能

英特尔宋继强:坚持科研的长期主义 推动AI向3.0时代跃迁

飞天鱼2017

架构师训练营作业 (第三周)

王海

极客大学架构师训练营

【写作群星榜】6.12~6.19 写作平台优秀作者 & 文章排名

InfoQ写作平台官方

写作平台 排行榜

对不起,我爱你

小天同学

小说 爱情 情感

《零基础学 Java》 FAQ 之 17-怎么理解Java中的数组

臧萌

Java

小师妹学JVM之:JIT中的LogCompilation

程序那些事

JVM 「Java 25周年」 小师妹 性能调优 JIT

你真的了解敏捷吗?听马丁福勒聊敏捷

涛哥

敏捷 数字化转型

GitHub 热榜:一款堪称作业终结者的开源神器!

JackTian

GitHub 开源项目 工具类网站 学生党 Text-to-handwriting

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

Ruby的OOP与动态特性-InfoQ