编辑推荐
适读人群 :程序员、动态语言编程爱好者 元编程是Ruby世界的如意金箍棒,只有能驾驭它的人才能充分发挥其潜力。
《Ruby元编程(第2版)》在大量剖析实例代码的基础上,详细讲解了33种元编程技巧。
读者不仅能学到对象模型、作用域、单件类、代码块等元编程概念,还将学习Rails的组织结构和工作原理,以及如何借助元编程编写领域专属语言。
第2版更新Ruby 2.0、Ruby 2.1内容,大部分示例代码取自流行的软件框架和类库,包括Rails4。
内容简介
《Ruby元编程(第2版)》在大量剖析实例代码的基础上循序渐进地介绍Ruby特有的实用编程技巧。通过分析案例、讲解例题、回顾Ruby类库的实现细节,作者不仅向读者展示了元编程的优势及其解决问题的方式,更详细列出33种发挥其优势的编程技巧。本书堪称动态语言设计模式。Ruby之父松本行弘作序推荐。
作者简介
Paolo Perrotta,有超过15年的软件设计和开发经验,他开发过嵌入式软件、企业级软件、计算机游戏和web应用,还发表过上百篇技术文章。他在欧洲各国教授敏捷课程,过着游牧般的生活。
目录
第一部分 Ruby元编程
第1章 元这个字眼
1.1 鬼城与自由市场
1.2 程序员Bob的故事
1.3 元编程和Ruby
第2章 星期一:对象模型
2.1 打开类
2.2 类的真相
2.3 小测验:缺失的连接线
2.4 调用方法时发生了什么?
2.5 小测验:混乱的模块
2.6 对象模型小结
第3章 星期二:方法
3.1 代码繁复的问题
3.2 动态方法
3.3 method_missing方法
3.4 小测验:消灭Bug
3.5 白板类
3.6 小结
第4章 星期三:代码块
4.1 学习代码块
4.2 小测验:Ruby的#符号
4.3 代码块是闭包
4.4 instance_eval方法
4.5 可调用对象
4.6 编写领域专属语言(DSL)
4.7 小测验:改良的DSL
4.8 小结
第5章 星期四:类定义
5.1 揭秘类定义
5.2 小测验:Taboo类
5.3 单件方法
5.4 单件类
5.5 小测验:模块的麻烦
5.6 方法包装器
5.7 小测验:打破数学规律
5.8 小结
第6章 星期五:编写代码的代码
6.1 通向周末的编程之路
6.2 Kernel#eval方法
6.3 小测验:校验过的属性(第一步)
6.4 小测验:校验过的属性(第二步)
6.5 小测验:校验过的属性(第三步)
6.6 小测验:校验过的属性(第四步)
6.7 钩子方法
6.8 小测验:校验过的属性(第五步)
6.9 小结
第7章 尾声
第二部分 Rails中的元编程
第8章 准备Rails之旅
8.1 Ruby on Rails
8.2 安装Rails
8.3 Rails源代码
第9章 Active Record的设计
9.1 简短的Active Record示例
9.2 Active Record的组成
9.3 经验之谈
第10章 Active Support的Concern模块
10.1 Concern模块出现之前
10.2 ActiveSupport::Concern模块
10.3 经验之谈
第11章 alias_method_chain方法沉浮录
11.1 alias_method_chain方法的兴起
11.2 alias_method_chain方法的衰亡
11.3 经验之谈
第12章 属性方法的发展
12.1 属性方法实战
12.2 属性方法的发展史
12.3 经验之谈
第13章 最后的思考
元编程不过是编程
第三部分 附录
附录A 常见惯用法
A.1 拟态方法
A.2 空指针保护
A.3 Self Yield
A.4 Symbol#to_proc方法
附录B 领域专属语言
B.1 关于领域专属语言
B.2 内部和外部领域专属语言
B.3 领域专属语言和元编程
附录C 法术手册
索引
精彩书摘
元编程……听起来很酷!好像是一种用于高级企业架构的设计方法。
事实上,元编程并非一个抽象的概念,它是一系列务实的编程技巧。在Ruby中,你可以用它完成如下一些工作。
假设你要写一个Ruby程序来连接外部系统(web服务或者Java程序),你可以用元编程写一个包装器用于接受任何方法的调用,然后把这些调用转发给外部系统。如果某人后来为这个外部系统添加了方法,即使不修改Ruby包装器,它也能自动支持新加入的方法。很神奇吧!
假设你遇到一类问题,需要设计某种领域专属语言来解决。如果你从头定义这门语言,并且自己编写解析器,工作量就太大了。你可以把Ruby改造成处理这个问题的专属语言。你甚至可以写一个简单的解释器从文件中读取这种基于Ruby语言的代码。
你可以把Ruby程序的简洁性提高到Java程序员做梦都不敢想的程度。比如一个包含20个方法的类,这些方法的名字看起来都差不多。元编程只用几行代码就能定义这些方法。如果你想调用一长串名字遵循一定的模式(比如名字都以test开头)的方法,元编程只用一行代码就能调用它们。
你可以改造Ruby使之满足你的需要,而不是去适应语言本身。例如,可以用你喜欢的方式增强任何一个类(包括Array这样的核心类);可以把想要监控的方法封装起来,当他人继承你的类后,就会执行你预先设定的代码……
……
前言/序言
Ruby的很多特性继承自其他语言,这些语言包括Lisp、Smalltalk、C、Perl等。它的元编程特性来自于Lisp和Smalltalk。元编程有点像魔法,看起来让人震惊。世界上有两种的魔法:好的白魔法和坏的黑魔法。同样,元编程也有两面性:你可以用元编程增强语言的功能,还可以创建领域专属语言;但是你也可能陷入到元编程的陷阱里。元编程是一种容易让人迷惑的技术。
Ruby相信你是一位成熟的程序员,它赋予你元编程这样强大的能力。但是你必须记住:能力越大,责任就越大。
请尽情享受Ruby编程吧!
——松本行弘
Ruby元编程(第2版) [Metaprogramming Ruby 2] epub pdf mobi txt 电子书 下载 2024
Ruby元编程(第2版) [Metaprogramming Ruby 2] 下载 epub mobi pdf txt 电子书 2024
评分
☆☆☆☆☆
书已拿到手,总体感觉很不错
评分
☆☆☆☆☆
不错,值得拥有
评分
☆☆☆☆☆
为什么老是要求写评价
评分
☆☆☆☆☆
还是请重视一下书的包装,买来不是看完就扔的,就一个塑料袋,对你们的物流再自信每次也会有破损、折角,书皮简直没法看
评分
☆☆☆☆☆
买了很多书、京东618很给力~
评分
☆☆☆☆☆
微服务,我目前想学习和撑握的技术,利用春节假期好好提升一下自己
评分
☆☆☆☆☆
还没看完,觉得是本挺不错的书,用来多学点知识,提升自己。
评分
☆☆☆☆☆
大品牌,品质没得说了,碰上了这优惠。以前用过,品质还可以。
评分
☆☆☆☆☆
书已拿到手,总体感觉很不错