图书介绍

优雅的RubyPDF|Epub|txt|kindle电子书版本网盘下载

优雅的Ruby
  • (美)Avdi Grimm著 著
  • 出版社: 武汉:华中科技大学出版社
  • ISBN:9787568024891
  • 出版时间:2017
  • 标注页数:231页
  • 文件大小:13MB
  • 文件页数:249页
  • 主题词:计算机网络-程序设计

PDF下载


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

下载说明

优雅的RubyPDF格式电子书版下载

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

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

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

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

图书目录

第1章 引言1

1.1 当Ruby遭遇现实2

1.2 自信优雅的代码2

1.3 好的故事,糟糕的讲述3

1.4 像写故事一样写代码4

1.5 方法的四个部分4

1.6 本书组织结构8

第2章 功能实现11

2.1 发送有效的消息12

2.2 导入交易记录13

2.3 识别消息14

2.4 识别角色14

2.5 避免马盖先主义17

2.6 让语言为系统服务17

2.7 像鸭子一样叫18

2.8 驯养鸭群19

第3章 收集输入21

3.1 输入处理概述21

3.1.1 间接输入23

3.1.2 从角色到对象26

3.1.3 保护边界而非内部27

3.2 使用内置的类型转换协议28

3.2.1 适用场景28

3.2.2 摘要28

3.2.3 基本原理28

3.2.4 示例:宣布获奖结果28

3.2.5 示例:Emacs配置文件30

3.2.6 标准类型转换方法列表32

3.2.7 显式转换和隐式转换33

3.2.8 明确提出参数要求37

3.2.9 小结39

3.3 有条件地使用类型转换方法40

3.3.1使用场景40

3.3.2 摘要40

3.3.3 基本原理40

3.3.4 示例:打开文件40

3.3.5 违反鸭子类型的唯一特例42

3.3.6 小结45

3.4 自定义类型转换协议46

3.4.1 使用场景46

3.4.2 摘要46

3.4.3 基本原理46

3.4.4 示例:接收一个点或一对坐标46

3.4.5 小结48

3.5 定义自定义类型的转换协议49

3.5.1 使用场景49

3.5.2 摘要49

3.5.3 基本原理49

3.5.4 示例:将英尺转换为米49

3.5.5 小结52

3.6 利用内置强制类型转换方法53

3.6.1 使用场景53

3.6.2 摘要53

3.6.3 基本原理53

3.6.4 示例:格式化打印数字53

3.6.5 Hash.[]57

3.6.6 小结57

3.7 用Array()将输入数组化58

3.7.1 使用场景58

3.7.2 摘要58

3.7.3 基本原理58

3.7.4 示例:可变参数58

3.7.5 小结60

3.8 自定义强制类型转换方法61

3.8.1 使用场景61

3.8.2 摘要61

3.8.3 基本原理61

3.8.4 示例:应用于2D图形中的强制类型转换方法62

3.8.5 关于module_function63

3.8.6 结合类型转换协议和强制类型转换方法64

3.8.7 用Lambdas表达式作case分支66

3.8.8 小结67

3.9 用自定义类替换类字符串类型68

3.9.1 使用场景68

3.9.2 摘要68

3.9.3 基本原理68

3.9.4 示例:红绿灯的状态问题69

3.9.5 小结77

3.10 用适配器装饰输入78

3.10.1 使用场景78

3.10.2 摘要78

3.10.3 基本原理78

3.10.4 示例:将日志写进IRC78

3.10.5 小结82

3.11 利用透明适配器逐步消除类型依赖83

3.11.1 适用场景83

3.11.2 摘要83

3.11.3 基本原理83

3.11.4 示例:再探将日志写进IRC的示例83

3.11.5 小结86

3.12 利用先决条件排除非法输入87

3.12.1 使用场景87

3.12.2 摘要87

3.12.3 基本原理87

3.12.4 示例:员工入职日期87

3.12.5 “可执行文档”91

3.12.6 小结91

3.13 利用#fetch确保Hash键的存在性92

3.13.1 使用场景92

3.13.2 摘要92

3.13.3 基本原理92

3.13.4 示例:useradd(8)包装器92

3.13.5 尝试#fetch95

3.13.6 自定义#fetch98

3.13.7 小结99

3.14利用#fetch提供默认参数100

3.14.1 使用场景100

3.14.2 摘要100

3.14.3 基本原理100

3.14.4 示例:可选的logger参数100

3.14.5 可重用的#fetch代码块104

3.14.6 双参数#fetch106

3.14.7 小结107

3.15 用断言验证假设108

3.15.1 使用场景108

3.15.2 摘要108

3.15.3 基本原理108

3.15.4 示例:导入银行记录108

3.15.5 小结113

3.16 用卫语句来处理特殊场景114

3.16.1 使用场景114

3.16.2 摘要114

3.16.3 基本原理114

3.16.4 示例:“静音模式”标志114

3.16.5 提前返回116

3.16.6 小结117

3.17 用对象表示特殊场景118

3.17.1 使用场景118

3.17.2 摘要118

3.17.3 基本原理118

3.17.4 示例:游客用户118

3.17.5 用特例对象来表示当前用户121

3.17.6 小步改进126

3.17.7 保持特例对象和普通对象的同步128

3.17.8 小结129

3.18 用空对象表示不做事的情况130

3.18.1 使用场景130

3.18.2 摘要130

3.18.3 基本原理130

3.18.4 示例:输出日志到shell命令行131

3.18.5 通用空对象133

3.18.6 穿越事界134

3.18.7 让空对象返回false138

3.18.8 小结140

3.19 用良性值替代nil142

3.19.1 使用场景142

3.19.2 摘要142

3.19.3 基本原理142

3.19.4 示例:显示会员地理位置信息142

3.19.5 无害就好145

3.19.6 小结146

3.20 用symbols做占位符147

3.20.1 使用场景147

3.20.2 摘要147

3.20.3 基本原理147

3.20.4 示例:web service可选认证147

3.20.5 都是nil惹的祸149

3.20.6 带语义的占位符152

3.20.7 小结154

3.21 将参数封装到参数对象中155

3.21.1 使用场景155

3.21.2 摘要155

3.21.3 基本原理155

3.21.4 参数对象回顾155

3.21.5 添加可选参数159

3.21.6 小结163

3.22 提取参数构建器164

3.22.1 使用场景164

3.22.2 摘要164

3.22.3 基本原理164

3.22.4 示例:方便的绘点API164

3.22.5 Net/ HTTP vs.Faraday168

3.22.6 提取参数Builder170

3.22.7 小结172

第4章 输出处理173

4.1 用全函数作为方法返回值174

4.1.1 使用场景174

4.1.2 摘要174

4.1.3 基本原理174

4.1.4 示例:单词搜索174

4.1.5 小结178

4.2 执行回调而非返回状态179

4.2.1 使用场景179

4.2.2 摘要179

4.2.3 基本原理179

4.2.4 示例179

4.2.5 小结182

4.3 用良性值表示失败183

4.3.1使用场景183

4.3.2 摘要183

4.3.3 基本原理183

4.3.4 示例:在侧边栏上显示推文183

4.3.5 小结185

4.4 用特例对象表示失败186

4.4.1 使用场景186

4.4.2 摘要186

4.4.3 基本原理186

4.4.4 示例:游客用户186

4.4.5 小结187

4.5 返回状态对象188

4.5.1 使用场景188

4.5.2 摘要188

4.5.3 基本原理188

4.5.4 示例:记录导入结果188

4.5.5 小结192

4.6 将状态对象传给回调193

4.6.1 使用场景193

4.6.2 摘要193

4.6.3 基本原理193

4.6.4 示例:将导入结果传给回调193

4.6.5 测试状态对象198

4.6.6 小结199

4.7 用throw提前终止执行200

4.7.1 使用场景200

4.7.2 摘要200

4.7.3 示例:提前终止HTML文档解析200

4.7.4 小结205

第5章 失败处理207

5.1 优先使用顶层异常捕获208

5.1.1 使用场景208

5.1.2 摘要208

5.1.3 基本原理208

5.1.4 示例208

5.1.5 小结209

5.2 用受检方法封装危险操作210

5.2.1 使用场景210

5.2.2 摘要210

5.2.3 基本原理210

5.2.4 示例210

5.2.5 演进成Adapters212

5.2.6 小结212

5.3 使用护卫方法213

5.3.1使用场景213

5.3.2 摘要213

5.3.3 基本原理213

5.3.4 示例:子进程状态检测213

5.3.5 小结216

第6章 为了优雅重构217

6.1 MetricFu218

6.1.1 Location218

6.1.2 HotspotAnalyzedProblems222

6.1.3 排名225

6.2 Stringer227

后记231

热门推荐