Ruby元编程 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
Ruby元编程电子书下载地址
内容简介:
《Ruby元编程》以案例形式循序渐进讲解Ruby对象模型原理和高级应用技巧,堪称动态语言的设计模式。书中讲述的各种Ruby编程模式,完全可以应用于其他动态语言(甚至静态语言)。本书不仅适合Ruby程序员阅读,也适合对动态编程 语言和面向对象编程感兴趣的读者阅读。所有对程序设计理论感兴趣的人都能从中获益。Ruby之父松本行弘作序推荐。
书籍目录:
目录
前言 vii
致谢 ix
引言 xi
“元”这个字眼 xii
关于本书 xix
关于你 xxii
第1部分 Ruby元编程 1
第1章 星期一:对象模型 3
1.1 跟Bill在一起的星期一 3
1.2 打开类 4
1.3 类的真相 9
1.4 小测验:缺失的连接线 21
1.5 调用一个方法时发生了什么 23
1.6 小测验:混乱的模块 32
1.7 对象模型小结 35
第2章 星期二:方法 37
2.1 一个重复代码的问题 38
2.2 动态方法 40
2.3 method_missing()方法 48
2.4 小测验:狩猎Bug 59
2.5 关于method_missing()方法的更多内容 61
第3章 星期三:代码块 69
3.1 怎样度过驼峰日 70
3.2 小测验:Ruby的#符号 71
3.3 闭包 74
3.4 instance_eval() 83
3.5 可调用对象 86
3.6 编写一种领域专属语言 94
3.7 小测验:更好的领域专属语言 96
第4章 星期四:类定义 101
4.1 类定义揭秘 102
4.2 小测验:Taboo类 109
4.3 单件方法 110
4.4 Eigenclass 116
4.5 小测验:模块的麻烦 129
4.6 别名 131
4.7 小测验:打破数学规律 135
第5章 星期五:编写代码的代码 139
5.1 带路 139
5.2 Kernel#eval 142
5.3 小测验:校验过的属性(第一步) 152
5.4 小测验:校验过的属性(第二步) 155
5.5 小测验:校验过的属性(第三步) 157
5.6 小测验:校验过的属性(第四步) 158
5.7 钩子方法 159
5.8 小测验:校验过的属性(第五步) 165
第6章 尾声 167
第2部分“Rails中的元编程” 169
第7章 ActiveRecord的设计 171
7.1 准备旅程 172
7.2 ActiveRecord的设计 174
7.3 经验教训 183
第8章 深入ActiveRecord 187
8.1 动态属性 187
8.2 动态查找器 195
8.3 经验教训 200
第9章 安全元编程 205
9.1 元编程的测试 205
9.2 化解猴子补丁 213
9.3 经验教训 218
第三部分 附录 221
附录A 常见惯用法 223
A.1 拟态方法 223
A.2 空指针保护 226
A.3 关于方法参数的技巧 227
A.4 Self Yield 231
A.5 Symbol#to_proc()方法 232
附录B 领域专属语言 235
B.1 关于领域专属语言 235
B.2 内部和外部领域专属语言 237
B.3 领域专属语言和元编程 238
附录C 法术手册 239
C.1 法术集 239
附录D 参考书目 251
索引 253
作者介绍:
Paolo Perrotta有超过10年的软件设计和开发经验,发表过上百篇技术文章。他用过Java、C++、C#编程,最后爱上了Ruby。他是较早接受敏捷方法的实践者,在Yoox(一家大型互联网时尚公司)从事管理敏捷团队的工作。他还在欧洲各国教授编程培训课。目前他和女友(还有一只猫)住在意大利,专心钻研Ruby。
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
暂无相关书籍摘录,正在全力查找中!
在线阅读/听书/购买/PDF下载地址:
原文赏析:
Module#constants方法返回当前范围内的常量;
Module.constants方法返回当前程序中所有顶级常量;
使用load() 方法有一个副作用。motd.rb 文件很可能定义了变量和类。尽管变量在加载完成后会落在当前作用域之外,但常量不会。这样,motd.rb 可能会通过它的常量(尤其是类名)污染当前程序的命名空间。
可以通过使用第二个可选参数来强制其常量仅在自身范围内有效:load('motd.rb', true)
通过这种方式加载的文件,Ruby 会创建一个匿名模块,使用它作为命名空间来容纳motd.rb 中定义的所有常量,加载完成后,该模块会被销毁。
require() 方法与load() 方法颇为相似,但是它的目的不同。通过load() 方法可以执行代码,而require() 则是用来导入(import)类库。这就是require() 方法没有第二个可选参数的原因。在这些类库中的类名通常是你导入这些库时所希望得到的,因些没有理由在加载后销毁它们。
当你在一个类(甚至可以是另外一个模块)中包含(include)一个模块时,Ruby 耍了些小花招。Ruby 创建了一个封装该模块的匿名类,并把这个匿名类插入到祖先链中,其在链中的位置正好包含在它的类上方。
就在Bill画着图1.7 的时候,他还解释说这些“封装(wrapper)”类叫做包含类(include class),有时也叫做代理类(proxy class)。包含类是Ruby 的一个秘密,superclass() 方法会假装它们根本不存在,而且你也一般不能通过正常的Ruby 代码访问它们。不过,还是应该对此有所了解,至少它能帮助理解有很多模块的复杂类体系结构。
由于Book没有明确指定的超类,所以它隐式继承于Object,而Object类包含Kernel模块并继承于BasicObject。当Book类包含Document模块时,Ruby为Document模块创建了一个包含类,并把它加入到Book类的祖先链上,位置正好在Book类之上。紧接着,Book类又包含Printable模块,再一次,Ruby为Printable模块创建了一个包含类,并把它也加入到Book的祖先链上,位置还正好在Book类之上,这样祖先链从Document往上的其他成员,则顺次提高一位。
使用lambda()创建的Proc称为lambda,而使用其他方式创建的则简单称为proc。
lambda和proc的return关键字各有不同的含义,这是它们的第一个区别。在lambda中,return仅仅表示从这个lambda中返回:
在proc中,return的行为则有所不同。它不是从proc中返回,而是从定义proc的作用域中返回:
proc和lambda的第二个区别来自它们检查参数的方式……lambda的适应能力比proc以及普通的块差。如果调用lambda时的参数数量不对,则它会失败,同时会招聘一个ArgumentError错误;而proc则会把传递进来的参数调整为自己期望的形式:如果参数比期望的要多,那么proc会忽略多余的参数;如果参数数量不足,那么对未指定的参数,proc会赋予一个nil值。
在Ruby1.8中,Kernel#proc()实际上只是Kernel#lambda()的别名。由于程序员的不断抗议,在Ruby1.9中,proc()变成Proc.new的别名。
其它内容:
书籍介绍
《Ruby元编程》以案例形式循序渐进讲解Ruby对象模型原理和高级应用技巧,堪称动态语言的设计模式。书中讲述的各种Ruby编程模式,完全可以应用于其他动态语言(甚至静态语言)。本书不仅适合Ruby程序员阅读,也适合对动态编程 语言和面向对象编程感兴趣的读者阅读。所有对程序设计理论感兴趣的人都能从中获益。Ruby之父松本行弘作序推荐。
网站评分
书籍多样性:9分
书籍信息完全性:3分
网站更新速度:7分
使用便利性:4分
书籍清晰度:7分
书籍格式兼容性:7分
是否包含广告:5分
加载速度:3分
安全性:7分
稳定性:9分
搜索功能:8分
下载便捷性:3分
下载点评
- 速度慢(498+)
- 内涵好书(418+)
- 超值(661+)
- 无盗版(532+)
- 强烈推荐(631+)
- 差评(270+)
- 差评少(364+)
下载评价
- 网友 权***波:
收费就是好,还可以多种搜索,实在不行直接留言,24小时没发到你邮箱自动退款的!
- 网友 康***溪:
强烈推荐!!!
- 网友 曹***雯:
为什么许多书都找不到?
- 网友 苍***如:
什么格式都有的呀。
- 网友 索***宸:
书的质量很好。资源多
- 网友 谢***灵:
推荐,啥格式都有
- 网友 石***烟:
还可以吧,毕竟也是要成本的,付费应该的,更何况下载速度还挺快的
- 网友 龚***湄:
差评,居然要收费!!!
- 网友 饶***丽:
下载方式特简单,一直点就好了。
- 网友 印***文:
我很喜欢这种风格样式。
- 网友 步***青:
。。。。。好
- 网友 相***儿:
你要的这里都能找到哦!!!
- 网友 常***翠:
哈哈哈哈哈哈
- 网友 车***波:
很好,下载出来的内容没有乱码。
- 网友 訾***晴:
挺好的,书籍丰富
- 网友 沈***松:
挺好的,不错
- 无处不在的巨分子 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 小学生经典诵读:五年级下(彩绘本) 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 借款担保纠纷裁判规则理解与适用(中国法院年度案例集成丛书) 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- AutoCAD 2022中文版入门与提高——环境工程设计(CAD/CAM/CAE入门与提高系列丛书) 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 中公版·2018贵州省公务员录用考试专用教材:面试冲刺卷 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 名牌小学入学:智力训练 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 9787510444838 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 全新正版图书 瓦尔登湖:纯美珍藏版 梭罗 中国华侨出版社 9787511372901 蔚蓝书店 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 韩国语商务会话 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
- 全新正版图书 国际结算:英文 对外经济贸易大学出版社 9787566322289青岛新华书店旗舰店 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线
书籍真实打分
故事情节:9分
人物塑造:7分
主题深度:3分
文字风格:5分
语言运用:9分
文笔流畅:7分
思想传递:6分
知识深度:9分
知识广度:7分
实用性:5分
章节划分:9分
结构布局:6分
新颖与独特:3分
情感共鸣:9分
引人入胜:4分
现实相关:7分
沉浸感:6分
事实准确性:3分
文化贡献:7分