【正版9新】 优雅的Ruby 9787568024891 【消毒塑封】
【消毒塑封 】 【正版9新】
¥
14.7
2.3折
¥
64.8
九五品
仅1件
作者阿弗迪·格林
出版社华中科技大学出版社
ISBN9787568024891
出版时间2017-01
装帧其他
开本16开
定价64.8元
货号9787568024891
上书时间2024-12-12
商品详情
- 品相描述:九五品
- 商品描述
-
作者简介
Avdi Grimm是ShipRise.com和RubyTapas.com的创始人,有着十几年Ruby编程经验,是Ruby程序界的领军人物。他目前与妻子居住在美国宾夕法尼亚南部。
目录
第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.5Hash.[]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示例:webservice可选认证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.5Net/HTTPvs.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.1MetricFu218
6.1.1Location218
6.1.2HotspotAnalyzedProblems222
6.1.3排名225
6.2Stringer227
第7章后记231
内容摘要
阿弗迪·格林编写的《优雅的Ruby》总结了32条Ruby编程技巧,帮助读者写出清晰、优雅、稳定的Ruby代码。作者Avdi Grimm主张Ruby方法应该像故事一样易于阅读。他将Ruby方法分成输入处理(Collecting Input)、功能实现(Performing Work)、输出处理(Delivering Output)、失败处理(Handling Failures)四个部分,针对每个部分的特点归纳实用的编程模式,并配合丰富的实例讲解,让读者写出优雅实用的Ruby代码,找回Ruby编程的乐趣。
— 没有更多了 —
以下为对购买帮助不大的评价