学习Ruby需要什么资料

Python015

学习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技巧才能得出的解决方案。这些题目的最终解法之巧妙,常常令人拍案叫绝(或是破口大骂)。不过这些“奇技淫巧”也并非全无用处,例如书中很多题目在解答时都用到了正则表达式,理解这些解答对于深入学习正则表达式的用法是很有帮助的

Today, gem and specimen tourmaline is mined chiefly in Brazil and Africa. Some placer material suitable for gem use comes from Sri Lanka. Some fine gem and specimen material has been produced in the US, with the first discoveries having been made in 1822, in the state of Maine. California became a large producer of tourmaline in the early 1900s. The Maine deposits tend to produce crystals in raspberry pink-red as well as minty greens. The California deposits are known for bright pinks, as well as interesting bicolors. During the early 1900s, Maine and California were the worlds largest producers of gem tourmalines. The Empress Dowager Tz'u Hsi, the last Empress of China, loved pink tourmaline and bought large quantities for gemstones and carvings from the then new Himalaya Mine, located in San Diego County, California. [4]

Almost every color of tourmaline can be found in Brazil, especially in the Brazilian states of Minas Gerais and Bahia. In 1989, miners discovered a unique and brightly colored variety of tourmaline in the state of Paraíba. The new type of tourmaline, which soon became known as paraiba tourmaline, came in unusually vivid blues and greens. These colors were often described as "neon" since they appeared to glow. Brazilian paraiba tourmaline is usually heavily included. Much of the paraiba tourmaline from Brazil actually comes from the neighboring state of Rio Grande do Norte. Material from Rio Grande do Norte is often somewhat less intense in color, but many fine gems are found there. It was determined that the element copper was important in the coloration of the stone. The demand and excitement for this new material, which has fetched more than $50,000 per carat, earned more respect for the other colors of tourmaline. In the late 90s, copper-containing tourmaline was found in Nigeria. The material was generally paler and less saturated than the Brazilian materials, although the material generally was much less included. A more recent African discovery from Mozambique has also produced beautiful tourmaline colored by copper, similar to the Brazilian paraiba. While its colors are somewhat less bright than top Brazilian material, Mozambique paraiba is often less included and has been found in larger sizes. The Mozambique paraiba material usually is more intensely colored than the Nigerian. There is a significant overlap in color and clarity with Mozambique paraiba and Brazilian paraiba, especially with the material from Rio Grande do Norte. While less expensive than top quality Brazilian paraiba, some Mozambique material sells for well over $5,000 per carat, which still is extremely high compared to other tourmalines.

Tourmaline mineral (~ 10 cm tall)Another unique variety that is also highly valued is chrome tourmaline, a rare type of dravite tourmaline from Tanzania which occurs in a very rich green color caused by chromium, the same element which causes the green in emerald. Of the standard Elbaite colors, generally blue indicolite gems are the most expensive, followed by green verdelite and pink to red rubellite. There are also yellow tourmalines, sometimes known as canary tourmaline. Ironically the rarest variety, colorless achroite, is not appreciated and is the least expensive of the transparent tourmalines. In addition to Brazil, significant amounts of tourmaline are also mined in Tanzania, Nigeria, Kenya, Madagascar, Mozambique, Namibia, Afghanistan, Pakistan, and Sri Lanka, and Malawi.[5]

Some tourmaline gems, especially pink to red colored stones, are altered by irradiation to improve their color. Irradiation is almost impossible to detect in tourmalines, and does not impact the value. Heavily-included tourmalines, such as rubellite and Brazilian paraiba are sometimes clarity enhanced, which must be disclosed to the buyer. A clarity-enhanced tourmaline (especially paraiba) is worth much less than a non-treated gem。

1. CleverCSS

CleverCSS是个用于CSS开发的小型标记语言,从Python中得到灵感。可以开发出干净、结构清晰的样式表。在许多方面它比CSS2都更简洁、强大。

它与CSS最明显不同之处在于语法:CleverCSS采用了缩进式语法而不是对齐。这明显违背了Tim Peters写Python指导原则(The Zen of Python),不过不失为组织样式的一个好方法。

2. Sass

Sass令CSS又有趣起来,它对CSS3进行了扩展,增加了嵌套规则、变量、混入、选择器继承等语法,可以使用命令行工具或网络框架插件,将其转化为良好格式的标准CSS。

3. Sajax

Sajax是一种使用Ajax framework来构建网站的开源工具,它使得通过JavaScript调用PHP、Perl或Python函数更加简便,而不产生页面刷新。该工具为你做了99%的工作,没有理由不用。

4. Komodo Edit for Perl,Python,Tcl,PHP,Ruby,Javascript

Komodo Edit一个小型快速开源编辑器,要替换你信任已久的代码编辑器很难,但若给Komodo Edit一个机会,它一定不会让你失望的。

它支持Windows、Mac、Linux,支持PHP, Python, Ruby, JavaScript, Perl, Tcl, XML, HTML 5, CSS3语法着色、代码折叠、后台语法检查、超强的自动补全和calltips。

5. CSSTidy

CSSTidy是一个开源CSS转化和优化工具,它能在Windows、Linux、OSX下执行,可以像PHP脚本一样由每行代码来控制行为。

与其他大多数CSS转换工具相反,它不使用任何常规的表达式,从而CSSTidy能够对CSS2完美支持并提供高可靠性。

6. Less

Less是一种动态样式表语言,LESS将CSS进行了扩展,添加例如变量、混入、操作符以及函数语法。LESS能够依靠Node.js与Rhino运行于客户端和服务器端。

7. Vim

Vim是一个高度可配置的高效文本编辑器,被大多数的UNIX系统广泛使用,Vim是一个免费的慈善共享软件。

8. HSS

HSS是个扩展CSS语法的工具,拥有强大的特性,例如:变量、嵌套块。HSS是一个CSS编译器,它支持CSS语法验证,当在转换过程中出现语法错误时,它将指出错误具体出现在哪个文件的哪一行。

9. Zen Coding——一种开发HTML与CSS代码的全新方式

Zen Coding是一个高速HTML、XML、XSL编辑插件,该插件的核心是一个强大的缩写引擎,它允许你将扩展表达式(类似于CSS选择器)插入到HTML代码中。

10. XCSS

首个面向对象的Css Framework,能让你的工作流更加简洁,xCSS基于CSS,并在开发复杂样式提供处理面向对象的工作流。

11. Haml

Haml是一种简洁优美的模板语言,可以应用于Ruby on Rails、PHP等Web开发平台,可以大大缩减模板代码,减少冗余,提高可读性。并且Haml是一种完备的模板语言,没有牺牲当前模板语言的任何特性。Haml由Hampton Catlin发明并开发了Ruby on Rails上的实现。

12. Markup Generator

一个简洁的xhtml/css代码生成器。可免去你在进行最初的切片工作时编写一些无聊的框架代码之苦,加速开发过程。Markup Generator生成的xhtml标记和css代码非常直观,且语法简洁,你可以直接跳至元素的样式编写。

13. BluePrint

Blueprint是一个 CSS框架,旨在缩短你的开发时间。它可以让你用很整洁的代码来将页面划分成很复杂的网格结构(grid),提供合理的排版甚至打印样式,从而为接下来的项目构建提供一个扎实的基础。

Via 13 Most Used Speedy Tools To Write CSS And HTML Code