学习Ruby需要什么资料

Python027

学习Ruby需要什么资料,第1张

Programming Ruby(2nd Edition)

这似乎已经不是怪事:关于一种编程语言的经典教材,作者不是这门语言的创造者。就像Stan Lippman之于C++、Joshua Bloch之于Java、Martin Fowler之于UML一样,Dave Thomas也许是这个世界上最善于向别人讲解Ruby语言的人——至少超过Matsumoto是毫无问题的。也许正是因为自己也经历了“不懂到懂”的学习过程,有时候“旁观者”反倒比“创造者”更清楚学习者们需要什么。

所以这本书就是Ruby的经典教材。关于Ruby的基本语法和常用工具,书中第一部分和第二部分做了详细的介绍。第三部分“Ruby Crystallized”更加阐述了Ruby语言的一些细节和设计理念,其中第23章“Duck Typing”是刚从Java或者.NET平台走出来的读者不可错过的,因为对于类型与契约的理解、对于类与类型的理解,正是Ruby这种动态语言与Java/C#等静态语言最大的区别之一。随后的第四部分提供了Ruby基础类库的速查手册。

Dave Thomas和Andy Hunt这两个“Pragmatic Programmer”并非浪得虚名:这本Programming Ruby虽然不是一本称职的参考手册,却足够帮助一个初学者步入Ruby世界而不致误入歧途,并且能够在很少见的一些情况下——譬如说忘了yield的用法——给有经验的Ruby程序员提供帮助。在我看来,这也就足够奠定它作为经典教材的地位了。由于封面上有一柄丁字镐,这本书也被昵称为“镐头书”——它正是你发掘“红宝石”(Ruby)宝藏的必备工具。

Agile Web Development with Rails

Rails的作者David Heinemeier Hansson说过一句大实话:“我从来不会为了学语言而学语言。”大多数人在大多数时候学习一种新的语言不是为了比较语言的优劣,而是因为这个语言底下的某个工具能给他的工作带来帮助。Ruby世界里的这个“杀手应用”,让Ruby在短短一年时间里成为焦点的这个工具,就是Rails。

这是第一本介绍Rails的图书,又是由Rails的作者DHH和前面提到的Dave Thomas共同撰写,其价值可谓不言而喻了。许是两位作者有太多的“乾货”想要交给读者,这本书的第一版被他们——不幸地——写到了558页之厚。书中首先展示了一个规模不大的在线购物网站,让读者亲身体验用Rails进行敏捷开发的感受;然后针对Rails框架的各个组件和安全、部署等延伸话题展开了深入的讨论。其内容之全面、探讨之深入,令人叹为观止。看起来,和Matsumoto不同,DHH很清楚应该怎么介绍自己的作品——不管是“浅出”还是“深入”。

值得中国读者高兴的是,这本书的第一版已经由林芷薰翻译,电子工业出版社付梓。Rails仍然处在高速发展的阶段,从本书第一版截稿至今,Rails已经发生了相当大的变化,因此这本中译本甫一面世便已经有很多过时之处。但这本书毕竟不是参考手册,作者更多地是在其中阐述Rails的设计理念和最佳实践。对于英文阅读无法达到最快速度的读者来说,这个译本未尝不可以是一个称职的向导。

Rails开发者助手两种

不难想象,有很多性急的程序员会——就像我一样——草草了解Ruby语法之后就一头扎进Rails的绚丽宫殿,体验快速开发web应用的成就感,却不得不时时因为缺乏对Ruby语言的深入了解而感到迷惑:这个类里什么都没有,它为什么会工作?那个地方写的代码是什么意思?可是,要全面系统地学习Ruby,又实在令人望而生畏。还好,我们有这本Ruby for Rails。书中介绍了一些Ruby语言特性——既有普通的也有高级的,都是Rails中使用到的。简而言之,这就是一本专门为Rails应用开发者提供的Ruby指南。更有趣的是,书中还用了一章(第17章)篇幅专门介绍“如何探索Rails源代码”,真可谓是“授人以渔”的典范了。

另一个“助手”则是Chad Fowler——他也是Programming Ruby的合着者——的Rails Recipes。和任何一本“菜谱”(recipe)一样,这本书不会教你如何使用菜刀与炒勺、如何把蔬菜切片——你可以从别的很多地方学到这些技巧。这本RailsRecipes教给读者的,是如何在 Rails环境下急就章地完成一个你需要的功能。譬如说“用户登录与身份验证”这件事,每个网站、每个开发者都曾经做过不止一次,这本书中就给了读者一个简单而可靠的解决方案,读者只要抄抄改改,几分钟就可以完成这个功能。对于初接触Rails(以及Web 2.0)、面对很多问题尚且无从下手的新兵来说,这本书确实可以帮助他们解决一些实际问题。

不过这本书的局限也同样明显:如果你需要的菜色超出了这份菜谱的范围,它就只好爱莫能助了;而且,仅仅给出解决问题的代码,却没有对应的单元测试,也让习惯了TDD的读者多少有些忐忑。在我看来,这本书对“授人以鱼”的专注恰好和前一本Ruby for Rails构成了一对“可怕的对称”,也让这两本书有理由共存于Rails开发者的案头。

Ruby In A Nutshell

作为Ruby语言的缔造者,Yukihiro Matsumoto只能写一本“果壳书”,这本身就是一件耐人寻味的事情。O’Reilly的“果壳书”系列历来褒贬不一:有人认为它们缺乏深度,也有人认为它们是快速入门的好帮手。但Matsumoto最大的问题在于:他创造了Ruby,却没有真正意识到这种语言到底有多大的威力——后来他经常在Ruby on Rails讨论组活动,从中了解一些精妙的Ruby用法。其结果也很自然:这本Ruby In A Nutshell作为语言参考中规中矩,但对于实际应用中的妙处——例如在DSL方面的应用——却语焉不详。再加上它所针对的Ruby版本是略显过时的1.6版,也让这本书的地位略显尴尬。

Ruby 奇书两种

称它们为“奇书”,因为它们的主题实在偏颇。先看这本Enterprise Integration with Ruby:虽说脚本语言常常被称为“胶水”,有多少人会当真想到用Ruby去做企业应用集成?不过细看之下,这本书多少有些名不副实之嫌,因为它真正介绍的无非只是如何访问数据库、如何操作XML、如何通过SOCKET通信之类比较底层的技术而已。在一个生僻的题目之下写着另一些生僻的内容,尽管这些内容算得上有趣,但我还是要对那些没有读过这本书的Ruby程序员说:你没有错过太多——尽管这本书与你想象的并不一样。

最后要介绍的这本书更是备受争议:有人盛赞它是“精通Ruby的必经之路”,也有人批评它沉溺于奇技淫巧缺乏实用价值。但无论褒贬,更多的读者正在逐一挑战其中的谜题——这本书就是James Edward Gray所着的Best of Ruby Quiz。这本书(目前出版的是第一卷)列举了25道题目,读者大多可以想出一种办法来解决这些问题,往往还能 通过思考和重构找到第二种优雅的设计,但这本书却给你列出了第三种、第四种真正精巧的解决方案——充分利用Ruby技巧才能得出的解决方案。这些题目的最终解法之巧妙,常常令人拍案叫绝(或是破口大骂)。不过这些“奇技淫巧”也并非全无用处,例如书中很多题目在解答时都用到了正则表达式,理解这些解答对于深入学习正则表达式的用法是很有帮助的

红宝石的主要特征

红宝石(Ruby)集中体现了高级宝石的三个主要特征:迷人的美丽、优秀的耐久性和极高的稀有性。

红宝石(Ruby)的美首先体现在其独一无二的红色上。虽然在自然界中红色的宝石有很多种,但唯有红宝石(Ruby)的红色能够给人带来最震撼的视觉冲击。在一幅缅甸的古画中,一位富有的欧洲人来到缅甸寻找传说中的红宝石(Ruby),一位当地的酋长拿出了一颗用绢布包裹的红宝石(Ruby)并将之摆在桌上。当他还未打开布包时,红宝石(Ruby)的光芒就已经将布包染上了一片红晕,而当他将要打开布包时,他对欧洲贵客说,“请坐稳!红宝石要出来了。”语音刚落,布包被打开,整个殿堂都被布包中的红宝石(Ruby)所散发出的红色火焰所照亮,而看客此时睁大了双眼,一只手悬在空中不知所措,另一只手则紧抓着桌沿,惊讶之情溢于言表。

红宝石(Ruby)的耐久性主要源于其卓越的硬度和耐高温的特性。红宝石(Ruby)的摩氏硬度为9,仅次于钻石,是自然界中第二硬的物质。同时它可以承受约2000摄氏度的高温而不熔化,这要比钻石不到1000摄氏度的燃点高出许多。因此,不管将其镶嵌为珠宝首饰来佩戴,还是作为私家的收藏,它都可以无惧环境的`变迁,历久而弥新。

优质的红宝石(Ruby)是极其稀有且极难获得的。在缅甸,平均每400吨红宝石(Ruby)矿石,只能筛选出1克拉左右的红宝石(Ruby)原矿,而对这些红宝石(Ruby)原矿进行再次精选之后,每1000颗这种矿石仅能够挑选出一颗——在颜色、净度、重量等各方面均达到宝石级的红宝石(Ruby)。在古代的传说中,人们为了获得深藏在无底山谷中的红宝石(Ruby),曾将一块块生肉投向山谷,并祈祷红宝石(Ruby)能粘在肉上,当秃鹫飞下谷底叼起肉之后,想办法射杀秃鹫从而得到粘在肉上或被秃鹫吞下的红宝石(Ruby)。

挑选红宝石应考虑哪些方面

红宝石的挑选可以从以下几个方面去考虑:

1.粒度大小:红宝石粒度越大,其价格越高。

2.颜色:红宝石的颜色有多种,最好的是较深的纯红色,其次为微带紫的红色,下面依次为较深的粉红色、紫红色,略带棕色的红色,其它如棕红色,发黑的红色、很浅的粉红色都是较差的红宝石。另外从台面观察红宝石,在转动时,应只看到一种颜色为最好,如能看到其它颜色,则说明红宝石加工时的取向不正确。

3.火彩:是在光源照射下,红宝石正面所表现的颜色,它实质上是红宝石的透明度、切工、颜色的综合作用的一种体现,一块好的红宝石在轻轻转动时(台面对着自己),可见内部有很多红色的小“火苗”在闪烁,对于高质量的红宝石要求其火彩要占整个冠部的55%以上。

4.裂纹:由于红宝石的裂纹较为普遍,因此挑选时,应尽量挑选裂纹少而细的红宝石,特别是不要挑选裂纹穿过宝石中心的红宝石。

红宝石佩戴有什么讲究

红宝石的佩戴不同于其他的宝石,一般比较随意没有什么太多的规矩,因此人们大可以随心所欲的将红宝石首饰佩戴在各个位置。

其次,红宝石的红色属于暖色调,因此佩戴红宝石时,我们可以尽量选择一些款式简单、大方、素净的衣服与之搭配,这样可以尽显宝石的光芒。

在选择红宝石款式的时候,要根据自己的外貌和体型特征来选择,比如,体型是瘦高型的人,选择一些椭圆型款式的红宝石,可以起到中和的作用,显现出一种柔和的美。

另外,我们要注意的是,红宝石也有不适合佩戴的人群,因为红宝石的磁场比较强烈,体质比较虚弱的人最好不要佩戴红宝石;还有,红宝石炙热的红色以及宝石本身所带有的激进的磁场性质,会更加加速人情绪的爆发,因此对于情绪容易激动的人,红宝石也是不适合的。