第一图书网

Ruby元编程

[意] Paolo Perrotta 华中科技大学出版社
出版时间:

2012-1-10  

出版社:

华中科技大学出版社  

作者:

[意] Paolo Perrotta  

页数:

288  

译者:

廖志刚,陈睿杰  

Tag标签:

无  

内容概要

《Ruby元编程》以案例形式循序渐进地介绍了Ruby特有的实用编程技巧
(元编程)。通过分析案例、讲解例题、回顾Ruby代码库的实现细节,《Ruby元编程》作者Paolo Perrotta
不仅向读者展示了Ruby编程的优势和Ruby特有的解决问题的方式,更详细列出了发挥其优势的技巧和常用的Ruby设计模式。
Ruby创始人松本行弘作序推荐。

作者简介

  Paolo
Perrotta有超过10年的软件设计和开发经验,发表过上百篇技术文章。他用过Java、C++、C#编程,最后爱上了Ruby。他是较早接受敏捷方法的实践者,在Yoox(一家大型互联网时尚公司)从事管理敏捷团队的工作。他还在欧洲各国教授编程培训课。目前他和女友(还有一只猫)住在意大利,专心钻研Ruby。

书籍目录

前言
致谢
引言
“元”这个字眼
关于本书
关于你
第1部分 Ruby元编程.
第1章 星期一:对象模型
1.1 跟Bill在一起的星期一
1.2 打开类
1.3 类的真相
1.4 小测验:缺失的连接线
1.5 调用一个方法时发生了什么
I.6 小测验:混乱的模块
1.7 对象模型小结
第2章 星期二:方法
2.1 一个重复代码的问题
2.2 动态方法
2.3 method—mtssing()方法
2.4 小测验:狩猎Bug
2.5 关于method—missing()方法的更多内容
第3章 星期三:代码块
3.1 怎样度过驼峰日
3.2 小测验:Ruby的#符号
3.3 闭包
3.4 itance eval()
3.5 可调用对象
3.6 编写一种领域专属语
3.7 小测验:更好的领域专属语言
第4章星期四:类定义
4.1类定义揭秘
4.2 小测验:Taboo类
4.3 单件方法
4.4 Eigenelass
4.5 小测验:模块的麻烦
4.6 别名
4.7 小测验:打破数学规律
第5章 星期五:编写代码的代码
5.1 带路
5.2 Kernel#eval
5.3 小测验:校验过的属性(第一步)
5.4 小测验:校验过的属性(第二步)
5.5 小测验:校验过的属性(第二三步)
5.6 小测验:校验过的属性(第四步)
5.7 钩子方法
5.8 小测验:校验过的属性(第五步)
第6章 尾声
第2部分 Rails中的元编程.
第7章 AcllyeRecord的设计
7.1 准备旅程
7.2 ActiveRecord的设计
7.3 经验教训
第8章 深入AcllyeRecord
8.1 动态属性
8.2 动态查找器
8.3 经验教训
第9章 安全元编程
9.1 元编程的测试
9.2 化解猴子补丁
9.3 经验教训
第3部分 附录
附录A 常见惯用法
A.1 拟态方法
A.2 空指针保护
A.3 关于方法参数的技巧
A.4 Self Yield
A.5 Symbol#to_proc()方法
附录B 领域专属语言
B.1 关于领域专属语言
B.2 内部和外部领域专属语言
B.3 领域专属语言和元编程
附录C 法术手册
C.1 法术集
附录D参考书目
索引

章节摘录

版权页: 插图: ——可以格式化你的硬盘,更糟糕的是,甚至可以读到你有点肉麻的电子情书。这种行为被称为代码注入攻击。 防止代码注入 很显然,下一个要问Bill的问题就是,“怎样才能保护我的代码免受代码注入攻击呢?”你也许可以解析所有的字符串代码(第142页),以识别其中可能有危险的操作。不过,这种方式已经被证明不大有效,因为恶意代码的写法成千上万,想要战胜一个一心想搞破坏的黑客,对你和你的计算机来说都是危险的。 当谈到代码注入时,有些字符串会比其他字符串更安全。只有从外面输入的字符串才可能包含恶意代码,因此可以简单地限制eval()只执行那些你自己写的字符串。当然,说起来容易,追踪字符串的来源可能会出乎意料的困难。 由于上面的原因,一些程序员倾向于完全禁止使用eval()方法。有些程序员紧张那些可能出错的东西,因此彻底禁止eval()方法成了一种非常流行的做法。“如果没有eval()方法,则只能根据具体问题来寻找替代方法。还记得“代码建入”(第148页)中的数组探索者程序么?你可以使用动态派发(第41页)技术来代替eval()方法: def explore_array(method,*arguments) [′a′,′b′,′c′],send(method,*arguments) end. 不过,有时候你还是会怀念eval()方法的。例如,最近,这个安全版本的数组探索者要求分开输入方法名和参数。不幸的是,分开输入这种方式可能会让你的Web界面显得不那么方便。另外,这个安全版本还不能调用像find()这样接受块的方法。如果需要支持块,那么不得不允许在系统中输入任意代码。在大量使用和完全不使用eval()之间并没有一个容易找到的“甜点,~。如果不想完全弃用eval(),Ruby的确也提供了一些能让它更安全的方式。下面看看这些特性。 污染对象和安全级别 Bill继续关于安全性的话题,介绍了污染对象的概念。Ruby会自动把不安全的对象——尤其是从外部传入的对象——标记为被污染的。污染对象包括程序从Web表单、文件和命令行读入的字符串,甚至包括系统变量。每次从污染字符串运算而来的新字符串,也是被污染的。

媒体关注与评论

  Ruby的很多特性继承自其他语言,这些语言包括Lisp、Smalltalk、C、Perl等。其元编程特性来自于Lisp(以及Smalltalk)。元编程看起来有点像魔术,功能强大。但是你必须牢记:能力越大,责任越大。享受Ruby编程吧。  ——松本行弘 Ruby之父


编辑推荐

《Ruby元编程》填补了Ruby语言参考手册和编程案例之间的空白。它不仅解释了各种元编程的技术,还展示了编写更精练、更优良代码的方法。不过要事先警告你,熟悉了新方法后,你会难以忍受目前主流的编程方法。

图书封面

图书标签Tags

广告

下载页面


Ruby元编程 PDF格式下载



这本书呢在ruby的群里被大家提到过很多次,口碑都是不错的。
开始学ruby的时候是觉得元编程是很高端的技巧,自己用不着;但是随着开发的深入,似乎就要用到一些元编程的知识了,因此我就买来了这本书。
他并不像一般国内的IT教材,全是概念啊然后就是例子;他是构架了一个故事背景,Bob和Bill在交流和学习的过程中逐步学到相应的知识,非常有趣味性。读者的疑问,很可能书中的Bob也会很想到,然后就是很自然的答疑解惑。我觉得很多国外的资料书这一点都做的很不错。
另外就是,翻译工作做的挺好的。白纸黑字的书虽然做不到代码高亮的功能,但是排版还是挺舒服的。


java中通过反射才能实现的方法,通过ruby的元编程就能轻松解决。作者模拟一个办公场景,在书中你将成为一名新入职的ruby程序员,在伙伴Bill的教导中逐步学习ruby元编程的技巧。内容深入而不枯燥,大可以随时捧在手上翻翻,绝对受益匪浅。。


看了大部分,ruby的元编程比Java的反射确实不是一档次的


相当不错。讲了很多Ruby背后元编程的知识,看完觉得受益匪浅


元编程的好书,学习ruby深入的更要看看。


看到网上对于这本书的评价还挺好的,刚好自己最近也是学习ruby,于是就购买了,现在看了一些,感觉挺不错的。本书并不是完全在讲述元编程,而是从类开始讲述。因此可以一步一步深入去阅读和理解。现在正在阅读当中。


Ruby元编程


今天中午刚到的书,忍不住马上就看了几十页,感觉很好。本书采用说故事的方式来介绍知识,讲的是一个程序员和一个叫Bill牛人在上班的一周内发生的关于Ruby的事情。以种方式来传授知识,真心喜欢。还要说的是,书中有些小结还有习题,和习题答案,帮助理解重要的知识点。书中的插图也挺好。此外,在推荐一本书:Programming Ruby (2nd edition);目前正在看,专们讲述Ruby的书,很详实。
感觉编写Ruby比Java要快速高效得多,挺喜欢的。不过他们都有各自的优缺点,同时是刚刚接触Ruby,所以不敢妄加评论。
有经验的同学出来说一说啊,大家也交流交流。大三了,快毕业了,抓紧看书吧。


早前看过《松本行弘的程序世界》认识的RUBY,最近对MACRUBY感兴趣,遂挑选了这本网上评价都很高的RUBY书。


书是不错,但让我明白了ruby的严重失误。作为解释性语言快速上手很重要,虽然创始人试图讨好各领域的开发者,但简洁上须学习python。个人预见,十年之内必淘汰,而python会用的很久。python虽然功能不完善,但也因此累赘很少。


一本很好的ruby进阶书籍,对于入门后的一些疑惑能够给与很好的解答,比如Ruby中的对象模型、一些gem源码中搞不清作用的方法等等。


别人推荐看的,ruby好书,值得推荐,收获颇丰


以前只是用过一些ruby的库,觉得很优雅,终于知道为什么这么赞了。


不错的书。还没细看。先看入门的,这个适合ruby进阶者。


质量很好,讲解的也很清晰
很适合
很喜欢
刚接触Ruby会仔细看。


除了后面的介绍RAILS源码,前面的都通读了一遍。RUBY果然很美味。


这本ruby书算是进阶书籍,可以帮助我更好地去学习ruby。


不用说了,学ruby的都知道


学习Ruby,跟上时代!


ruby程序员一点点要看的


非常经典,学习 ruby 必备。
我是初次学习 ruby,直接从这本书入手,感觉对 ruby 的理解比从语法书入手要深入的多。
翻译、印刷、排版也非常好,难得的佳作。


关于ruby不错的书


ruby 进阶必看,尤其是书中对 知识点有 Pn 链接很不错


元编程介绍的很透彻


Ruy元编程,期待看到精彩内容!


不知道“改善代码结构一本通”体现在哪里?


没什么说的,松本行弘的书


这本书真的不错,跟看故事的,不枯燥,里面讲了很多方法,看完rails程序设计,再看这个,觉得很有用


书写的很好,例子又恰到好处,推荐。


挺不错的书,慢慢钻研,争取有进步


送货很快,书也非常新,内容还未细读不做评价


送货速度快,手感不错,印刷也不错


内容很不错 很有趣 但是书的封面有些粗糙 有点痕迹


印刷精美。。


不错, 很值得一看


书本还没看,等看了再来评价。这次网购很满意。当当速度超快。哈哈。书本质量也不错。


很好的一本书 看完觉得自己真的还很菜 继续学习


皇帝的新衣啊,其实挺难看懂的!必须有相当基础再来进阶的。


书不是很厚,看了一章,总体还算满意


非常好,学习uy必读!


刚开始看英文版的,因水平有限,看得很费劲,效率实在低下。实在忍不住买了实体书,确实值得买一本!


嗯,刘鑫大佬是这么说的

要我说的话,我大概也只能这么说了。不少内容其实你能在阅读源代码或者大量项目的时候看到或者自己想出来,但是还有不少你想不到的。

所以这算是一本能让人感动的书。


很先进的思想,即使现在不用,也值得学习学习!


超级经典的一本书!值得一看~


公司的ruby大牛推荐的,看当当上可以订购了就买了,waiting~


比较深入的介绍了ruby的方方面面以及背后的故事。


还可以的吧刚开始学习ruby这本书看不了要过一段时间再看


想研究Ruby如何定义DSL所以买了这本书,还没细看。感觉内容写得比较好懂。


工作需要,必需的!


看看可以不要


他说还行,有时间得好好看看。


昨晚下的单,中午就到了


书不错,但是书有些许破损


ing好的 可以学习学习啊


这本书入门级


速度有点慢,书质量还可以。


概念!


英文版早就出来了,中文版的也还不错。


看过***mon lisp再看这本书,觉得ruby实在没法比啊。


和想像中差距比较大,一般看看吧,总归能长点知识。


拿到的书本是受污的


非常好,让你更加深刻得理解了这门语言的设计思想


书的内容非常不错。建议看英文原版。翻译的还行。


公司最近对元编程开始有要求了...然后今天一查,正好是上个月出版的... 觉得好感动啊另外国内出版社希望多出一些rails3的书籍,原版的过于昂贵


只要是使用ruby编程的都应该看


内容自然不必说了,非常好


还没看完,只看了前三章,总的说通俗易懂,对于从前搞java、赶鸭子上架搞ruby、没有系统学过的我,对这个语言理解更透彻


本书不仅只讲元编程,而是透过元编程,揭示Ruby语言的设计哲学与核心,同时又是讲求实践的好书,几乎所有示例都有重构的影子,这书会让你真正了解Ruby,而且读起来不累!


元编程 本书开始ActiveRecord的解说就吸引了我,我最近刚研究了ActiveRecord这里就给我讲解了机理,赞啊


价格合理,书籍内容很好!


不仅仅是讲Ruby,如果你以前有面向对象编程经验,那么这本书能增强你这方面的认识。解决你知其所以然的问题。


建议学习元编程的可以看看


这个本书对ruby的很多概念进行了深刻的解释


这本书不错,值得看下


讲述故事的方式,非常不错


不错,大概翻了一下内容,写的还是蛮简单的,也比较容易懂。


元编程的理念很好,但也要用好才行


值得珍藏的一本回味书


不错不错,喜欢喜欢喜欢。


非常适合进阶


相关图书