图书介绍

The Ruby Way 第2版 中文版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

The Ruby Way 第2版 中文版
  • (美) Hal Fulton著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115166692
  • 出版时间:2007
  • 标注页数:532页
  • 文件大小:28MB
  • 文件页数:558页
  • 主题词:软件开发

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

The Ruby Way 第2版 中文版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Ruby概述1

1.1 面向对象简介2

1.1.1 什么是对象2

1.1.2 继承3

1.1.3 多态4

1.1.4 其他术语5

1.2 基本的Ruby语法和语义5

1.2.1 关键字和标识符6

1.2.2 注释和内嵌文档7

1.2.3 常量、变量和类型7

1.2.4 运算符及其优先级8

1.2.5 示例程序9

1.2.6 循环和分支11

1.2.7 异常15

1.3 Ruby中的OOP16

1.3.1 对象17

1.3.2 内置类17

1.3.3 模块和Mixin18

1.3.4 创建类19

1.3.5 方法和属性22

1.4 Ruby的动态方面23

1.4.1 在运行时编码23

1.4.2 反射25

1.4.3 方法找不到26

1.4.4 垃圾回收(Garbage Collection,GC)26

1.5 直觉训练:需要记住的内容26

1.5.1 语法问题27

1.5.2 编程方面28

1.5.3 Ruby的case语句30

1.5.4 Ruby程序员及其习惯用语32

1.5.5 面向表达式和其他问题37

1.6 Ruby术语38

1.7 结语40

第2章 使用字符串41

2.1 表示普通字符串41

2.2 用其他表示法表示字符串42

2.3 使用Here文档42

2.4 确定字符串的长度44

2.5 每次处理一行44

2.6 每次处理一个字节44

2.7 执行特殊的字符串比较45

2.8 将字符串分解为标记46

2.9 格式化字符串47

2.10 将字符串用做IO对象48

2.11 控制大小写48

2.12 获取和设置子字符串49

2.13 字符串替换50

2.14 字符串搜索51

2.15 在字符和ASCII码之间转换52

2.16 隐式转换和显式转换52

2.17 在字符串末尾添加内容54

2.18 删除末尾的换行符和其他字符54

2.19 删除字符串中的空白55

2.20 重复字符串55

2.21 在字符串中嵌入表达式55

2.22 字符串的延迟插入56

2.23 解析逗号分隔的数据56

2.24 将字符串转换为数字(十进制数和其他进制)57

2.25 rot13文本编码和解码58

2.26 字符串加密59

2.27 字符串压缩60

2.28 计算字符串中的字符数60

2.29 字符串反转61

2.30 删除重复的字符61

2.31 删除指定的字符61

2.32 打印特殊字符62

2.33 生成后续字符串62

2.34 计算32位的CRC62

2.35 计算字符串的MD5散列值63

2.36 计算两个字符串之间的Levenshtein距离64

2.37 base64字符串的编码和解码65

2.38 字符串编码和解码(uuencode/uudecode)66

2.39 扩展和压缩制表符66

2.40 文本自动换行67

2.41 结语67

第3章 使用正则表达式68

3.1 正则表达式的语法68

3.2 编辑正则表达式70

3.3 特殊字符的转义71

3.4 使用锚71

3.5 使用量词符(quantifier)72

3.6 正负预查(Lookahead)73

3.7 访问后向引用74

3.8 使用字符类76

3.9 扩展正则表达式77

3.10 使用点匹配换行符78

3.11 使用内嵌选项78

3.12 使用内嵌子表达式79

3.13 Ruby与Oniguruma79

3.13.1 检测是否有Oniguruma80

3.13.2 编译Oniguruma80

3.13.3 Oniguruma的一些新特性81

3.13.4 正负后查(Lookbehind)82

3.13.5 再谈量词符82

3.13.6 命名匹配83

3.13.7 正则表达式中的递归84

3.14 一些正则表达式示例85

3.14.1 匹配IP地址85

3.14.2 匹配关键字—值对86

3.14.3 匹配罗马数字86

3.14.4 匹配数值常量87

3.14.5 匹配日期/时间字符串87

3.14.6 检测文本中的双词88

3.14.7 匹配全部大写的单词88

3.14.8 匹配版本号88

3.14.9 其他模式88

3.15 结语89

第4章 Ruby的国际化90

4.1 背景与术语91

4.2 后ASCII时代的编码93

4.2.1 jcode库与$KCODE94

4.2.2 再谈常用的字符串和正则表达式操作95

4.2.3 检测字符编码98

4.2.4 Unicode字符的规范化98

4.2.5 字符串排序的问题99

4.2.6 编码之间的转换101

4.3 使用消息目录103

4.3.1 背景与术语103

4.3.2 开始使用消息目录104

4.3.3 简单应用程序的本地化104

4.3.4 其他注意事项108

4.4 结语108

第5章 执行数值计算109

5.1 在Ruby中表示数值109

5.2 基本数字运算110

5.3 对浮点数执行舍入110

5.4 比较浮点数112

5.5 格式化输出的数值113

5.6 用逗号格式化数值113

5.7 使用超大型整数114

5.8 使用BigDecimal114

5.9 处理有理数116

5.10 矩阵运算116

5.11 处理复数119

5.12 使用mathn120

5.13 因子分解、最大公约数和最小公倍数121

5.14 处理素数121

5.15 隐式与显式数值转换122

5.16 数值的协同转换(coercing)123

5.17 对数值执行按位运算124

5.18 执行进制转换125

5.19 计算立方根、四次方根等125

5.20 确定体系结构的字节顺序126

5.21 定积分的数值计算127

5.22 以度、弧度、分度为单位的三角计算127

5.23 高级三角函数128

5.24 计算以任何数为底的对数128

5.25 计算数据集的均值、中值和众数129

5.26 方差和标准差130

5.27 计算相关系数130

5.28 生成随机数132

5.29 使用memoize缓存函数结果132

5.30 结语133

第6章 符号和范围134

6.1 符号134

6.1.1 作为枚举的符号135

6.1.2 作为元值(metavalue)的符号136

6.1.3 符号、变量和方法136

6.1.4 符号的转换137

6.2 范围138

6.2.1 开范围和闭范围138

6.2.2 查找终点138

6.2.3 对范围进行迭代139

6.2.4 测试是否在范围内139

6.2.5 转换为数组140

6.2.6 反向范围140

6.2.7 flip-flop运算符140

6.2.8 自定义的范围143

6.3 结语145

第7章 处理时间和日期146

7.1 确定当前时间146

7.2 处理特定的时间(纪元后)147

7.3 确定星期几148

7.4 确定复活节的日期148

7.5 计算一个月内的第几个星期几149

7.6 秒与更大时间单位之间的转换150

7.7 其他时间和纪元之间的转换150

7.8 不要使用闰秒151

7.9 计算一年中的第几天151

7.10 验证日期/时间151

7.11 计算一年的第几周152

7.12 检测闰年153

7.13 获得时区153

7.14 只使用小时与分钟154

7.15 比较日期/时间值154

7.16 给日期/时间值增加间隔154

7.17 计算两个日期/时间值的差155

7.18 处理特定的日期(纪元前)155

7.19 Time、Date、DateTime之间的转换155

7.20 从字符串中提取日期/时间值156

7.21 日期/时间值的格式化和输出157

7.22 时区转换158

7.23 计算一个月的天数158

7.24 将月划分为周159

7.25 结语160

第8章 数组、散列及其他枚举类型161

8.1 使用数组161

8.1.1 数组的创建和初始化162

8.1.2 数组元素的访问和赋值162

8.1.3 确定数组的长度163

8.1.4 数组的比较163

8.1.5 数组的排序165

8.1.6 根据条件从数组中选择167

8.1.7 使用专门的索引函数168

8.1.8 实现稀疏矩阵169

8.1.9 使用数组作为数学集合170

8.1.10 数组的随机化173

8.1.11 使用多维数组173

8.1.12 找出在一个数组中而不在另一个数组中的元素174

8.1.13 数组的变换或映射174

8.1.14 删除数组中的nil元素175

8.1.15 删除特定的数组元素175

8.1.16 数组的拼接和附加176

8.1.17 将数组用做栈或队列177

8.1.18 对数组进行迭代177

8.1.19 插入分隔符以形成字符串178

8.1.20 颠倒数组178

8.1.21 删除数组中的重复元素178

8.1.22 数组的交织178

8.1.23 计算数组中值的频率179

8.1.24 将数组颠倒为散列179

8.1.25 同步多个数组的排序179

8.1.26 给新数组元素指定默认值180

8.2 使用散列181

8.2.1 创建新散列181

8.2.2 指定散列的默认值182

8.2.3 访问和添加键—值对182

8.2.4 删除键—值对183

8.2.5 对散列进行迭代184

8.2.6 散列的颠倒184

8.2.7 检测散列中的键和值184

8.2.8 将散列提取为数组185

8.2.9 根据条件选择键—值对185

8.2.10 散列的排序186

8.2.11 合并两个散列186

8.2.12 从数组创建散列186

8.2.13 计算散列键的差集和交集187

8.2.14 将散列用做稀疏矩阵187

8.2.15 实现包含重复键的散列187

8.3 枚举概述190

8.3.1 inject方法190

8.3.2 使用量词符191

8.3.3 partition方法192

8.3.4 分组迭代193

8.3.5 转换为数组或集合193

8.3.6 使用Enumerator对象194

8.3.7 使用Generator对象195

8.4 结语196

第9章 高级数据结构197

9.1 使用集合197

9.1.1 简单的集合操作198

9.1.2 高级集合操作199

9.2 使用栈和队列200

9.2.1 实现严谨的栈200

9.2.2 检测表达式中不配对的标点201

9.2.3 理解栈和递归202

9.2.4 实现严谨的队列203

9.3 使用树204

9.3.1 实现二叉树204

9.3.2 使用二叉树排序206

9.3.3 将二叉树用做查询表207

9.3.4 将树转换为字符串或数组207

9.4 使用图208

9.4.1 使用邻接矩阵实现图209

9.4.2 确定图是否全连通211

9.4.3 检测图是否包含欧拉回路212

9.4.4 判断图是否有欧拉路径212

9.4.5 Ruby中的图工具213

9.5 结语213

第10章 I/O和数据存储214

10.1 处理文件和目录215

10.1.1 打开和关闭文件215

10.1.2 更新文件216

10.1.3 文件的追加216

10.1.4 随机存取文件216

10.1.5 处理二进制文件217

10.1.6 锁定文件218

10.1.7 执行简单的I/O操作219

10.1.8 执行缓冲I/O和非缓冲I/O操作220

10.1.9 操作文件所有者和权限220

10.1.10 获取和设置时间戳信息222

10.1.11 检查文件是否存在及其大小223

10.1.12 检查特殊的文件属性223

10.1.13 使用管道225

10.1.14 执行特殊的I/O操作226

10.1.15 使用非阻断I/O226

10.1.16 使用readpartial227

10.1.17 操作路径名227

10.1.18 使用Pathname类228

10.1.19 命令级文件操作229

10.1.20 从键盘抓取字符230

10.1.21 将整个文件读取到内存中230

10.1.22 逐行对文件进行迭代231

10.1.23 逐字节对文件进行迭代231

10.1.24 将字符串视为文件231

10.1.25 读取程序内嵌的数据232

10.1.26 读取程序的源代码233

10.1.27 处理临时文件233

10.1.28 改变和设置当前目录233

10.1.29 改变当前根目录234

10.1.30 迭代目录项234

10.1.31 获取目录项列表234

10.1.32 创建目录链234

10.1.33 递归地删除目录235

10.1.34 查找文件和目录235

10.2 执行高级数据访问236

10.2.1 简单序列化236

10.2.2 更复杂的序列化237

10.2.3 使用Marshal执行有限的“深拷贝”238

10.2.4 使用Pstore执行更好的对象持久化238

10.2.5 处理CSV数据239

10.2.6 使用YAML进行序列化241

10.2.7 使用Madeleine进行对象的Prevalence242

10.2.8 使用DBM库243

10.3 使用KirbyBase243

10.4 连接到外部数据库246

10.4.1 连接到SQLite246

10.4.2 连接到MySQL247

10.4.3 连接到PostgreSQL249

10.4.4 连接到LDAP251

10.4.5 连接到Oracle252

10.4.6 使用DBI封装类253

10.4.7 对象关系映射器(Object-RelationalMapper,ORM)254

10.5 结语255

第11章 Ruby的OOP与动态特性256

11.1 日常OOP任务256

11.1.1 使用多个构造函数257

11.1.2 创建实例属性257

11.1.3 使用更精美的构造函数258

11.1.4 创建类级属性和方法259

11.1.5 继承超类262

11.1.6 测试对象所属的类264

11.1.7 判断对象的相等性266

11.1.8 控制对方法的访问267

11.1.9 复制对象268

11.1.10 使用initialize_copy269

11.1.11 理解allocate270

11.1.12 处理模块270

11.1.13 对象的变换或转换273

11.1.14 创建只包含数据的类(Struct)275

11.1.15 冻结对象276

11.2 高级技巧277

11.2.1 向对象发送显式消息277

11.2.2 对象的特殊化278

11.2.3 类和模块的嵌套281

11.2.4 创建参数化类282

11.2.5 使用继续来实现生成器284

11.2.6 将代码存储为对象286

11.2.7 模块包含的工作原理287

11.2.8 检测默认参数288

11.2.9 委托或转交289

11.2.10 自动定义类级Reader与Writer290

11.2.11 使用高级编程准则291

11.3 使用动态特性293

11.3.1 动态地执行代码293

11.3.2 使用const get294

11.3.3 根据名称动态地实例化类294

11.3.4 获取和设置实例变量295

11.3.5 使用define method296

11.3.6 使用const_missing298

11.3.7 删除定义299

11.3.8 获取已定义的实体列表301

11.3.9 查看调用栈303

11.3.10 监视程序的执行303

11.3.11 遍历对象空间304

11.3.12 处理对不存在的方法的调用305

11.3.13 跟踪类或对象定义的变更305

11.3.14 定义对象的finalizer308

11.4 结语309

第12章 Ruby的图形界面310

12.1 Ruby/Tk310

12.1.1 概述311

12.1.2 一个简单的窗口应用程序312

12.1.3 使用按钮313

12.1.4 使用文本框315

12.1.5 使用其他窗口部件318

12.1.6 其他说明320

12.2 Ruby/GTK2321

12.2.1 概述321

12.2.2 一个简单的窗口应用程序322

12.2.3 使用按钮323

12.2.4 使用文本框324

12.2.5 使用其他窗口部件326

12.2.6 其他说明329

12.3 FXRuby(FOX)331

12.3.1 概述331

12.3.2 一个简单的窗口应用程序332

12.3.3 使用按钮333

12.3.4 使用文本框334

12.3.5 使用其他窗口部件335

12.3.6 其他说明342

12.4 QtRuby342

12.4.1 概述343

12.4.2 一个简单的窗口应用程序343

12.4.3 使用按钮344

12.4.4 使用文本框345

12.4.5 使用其他窗口部件346

12.4.6 其他说明350

12.5 其他GUI工具包351

12.5.1 Ruby和X351

12.5.2 Ruby和wxWidgets351

12.5.3 Apollo(Ruby和Delphi)351

12.5.4Ruby与Windows API352

12.6 结语352

第13章 Ruby中的线程353

13.1 创建和操控线程353

13.1.1 创建线程354

13.1.2 访问线程的局部变量354

13.1.3 查询和修改线程状态356

13.1.4 实现会合点并拦截返回值358

13.1.5 处理异常359

13.1.6 使用线程组360

13.2 同步线程361

13.2.1 使用临界区执行简单同步362

13.2.2 同步对资源的访问(mutex.rb)363

13.2.3 使用预定义的同步队列类366

13.2.4 使用条件变量367

13.2.5 使用其他同步技术368

13.2.6 允许操作超时370

13.2.7 等待事件发生371

13.2.8 在I/O期间继续处理372

13.2.9 实现并行迭代器373

13.2.10 并行地递归删除374

13.3 结语375

第14章 脚本编程与系统管理376

14.1 运行外部程序376

14.1.1 使用system和exec376

14.1.2 命令输出替换377

14.1.3 操作进程378

14.1.4 操作标准输入/输出380

14.2 命令行选项和参数380

14.2.1 命令行选项的解析381

14.2.2 使用ARGF382

14.2.3 使用ARGV383

14.3 Shell库383

14.3.1 使用Shell进行I/O重定向383

14.3.2 有关shell.rb的其他说明385

14.4 访问环境变量385

14.4.1 获取和设置环境变量386

14.4.2 将环境变量存储为数组或散列386

14.4.3 将环境变量作为全局变量导入387

14.5 Microsoft Windows脚本编程387

14.5.1 使用Win32API388

14.5.2 使用Win32OLE388

14.5.3 使用ActiveScriptRuby391

14.6 Windows One-Click安装程序392

14.7 需要知道的库393

14.8 使用文件、目录和树393

14.8.1 文本过滤器简介394

14.8.2 复制包含符号链接的目录树394

14.8.3 根据创建日期或其他条件删除文件395

14.8.4 确定可用磁盘空间396

14.9 其他脚本编程任务397

14.9.1 单文件Ruby解决方案397

14.9.2 在Ruby解释器中使用管道398

14.9.3 获取和设置退出编码399

14.9.4 检测程序是否以交互方式运行399

14.9.5 确定当前平台或操作系统399

14.9.6 使用Etc模块400

14.10 结语400

第15章 Ruby和数据格式401

15.1 使用REXML解析XML401

15.1.1 树的解析402

15.1.2 解析流403

15.1.3 XPath及其他404

15.2 使用RSS和Atom405

15.2.1 rss标准库405

15.2.2 feedtools库407

15.3 使用RMagick操作图像数据408

15.3.1 常见的图形任务408

15.3.2 特效和变换411

15.3.3 绘图API414

15.4 使用PDF∷Writer创建PDF文档416

15.4.1 基本概念和技巧416

15.4.2 一个示例文档418

15.5 结语424

第16章 测试和调试425

16.1 使用Test∷Unit进行测试425

16.2 ZenTest工具428

16.3 使用Ruby调试器431

16.4 将irb用做调试器434

16.5 度量代码覆盖率435

16.6 度量性能435

16.7 对象的完美输出(Prettyprinting)439

16.8 结语440

第17章 代码的打包和分发441

17.1 使用RDoc441

17.1.1 简单标记443

17.1.2 高级格式化445

17.2 安装和打包445

17.2.1 setup.rb446

17.2.2 RubyGem447

17.3 RubyForge和RAA448

17.4 结语449

第18章 网络编程450

18.1 网络服务器451

18.1.1 一个简单服务器:时间451

18.1.2 实现多线程服务器453

18.1.3 案例分析:对等象棋服务器453

18.2 网络客户端459

18.2.1 从Web获取真正的随机数459

18.2.2 连接到官方的时间服务器462

18.2.3 与POP服务器交互462

18.2.4 使用SMTP发送邮件464

18.2.5 与IMAP服务器交互466

18.2.6 附件的编码和解码467

18.2.7 案例分析:邮件—新闻网关(Mail-News Gateway)469

18.2.8 根据URL获取网页473

18.2.9 使用Open-URI库474

18.3 结语474

第19章 Ruby与Web应用程序475

19.1 使用Ruby进行CGI编程475

19.1.1 cgi.rb库简介476

19.1.2 显示和处理表单477

19.1.3 使用Cookie478

19.1.4 使用用户会话478

19.2 使用FastCGI479

19.3 Ruby on Rails481

19.3.1 原理和技术481

19.3.2 Rails应用程序的测试与调试482

19.3.3 核心扩展483

19.3.4 相关的工具和库484

19.4 使用Nitro进行Web开发484

19.4.1 创建基本的Nitro应用程序484

19.4.2 Nitro和MVC模式486

19.4.3 Nitro和Og489

19.4.4 Nitro中常见的Web开发任务490

19.4.5 其他重要的细节492

19.5 Wee简介494

19.5.1 一个简单的例子494

19.5.2 将状态与URL关联起来495

19.6 使用IOWA进行Web开发496

19.6.1 基本的IOWA概念496

19.6.2 IOWA中的模板498

19.6.3 组件控制权转移499

19.7 Ruby和Web服务器500

19.7.1 使用mod ruby500

19.7.2 使用erb501

19.7.3 使用WEBrick503

19.7.4 使用Mongrel505

19.8 结语506

第20章 分布式Ruby507

20.1 概述:使用drb507

20.2 案例分析:股票机模拟程序509

20.3 Rinda:一种Ruby元组空间512

20.4 分布式Ruby中的服务发现515

20.5 结语516

第21章 Ruby开发工具517

21.1 使用RubyGems517

21.2 使用rake519

21.3 使用irb521

21.4 ri工具525

21.5 编辑器支持526

21.6 集成开发环境527

21.7 结语528

第22章 Ruby社区529

22.1 Web资源529

22.2 新闻组和邮件列表529

22.3 博客和在线杂志530

22.4 Ruby修订请求530

22.5 IRC频道531

22.6 Ruby大会531

22.7 本地的Ruby用户组532

22.8 结语532

热门推荐