• 2007-04-03

    读《Programming Ruby》

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/4936981.html

    我喜欢Ruby,因为它在我心中是一种优美的程序设计语言;我喜欢读纸版书,因为捧在手里很有感觉;我喜欢读中文版,毕竟中文是我的母语。所以,当《Programming Ruby中文版》面市的时候,我迫不及待的在网上下了订单。

    这本书给我的第一印象是“厚”,有如字典一般的外观对于捧在手中的阅读不会是一种非常好的阅读体验,不过,几百页的图书想薄也难啊!不过,整体来说,这本书的制作质量还是相当不错的,让人感觉很舒服,事实上,这本书读起来感觉确实不错,也不枉为它等待如此之长的时间了。

    因为已经对Ruby有了一定了解,所以,我读这本书更多的是对知识上的查缺补漏,这样的读书,速度自然也快了许多。所以,很快就把正文中我感兴趣的部分读了一遍。至于后面库的部分,用到的时候再说吧!

    这本书几乎算得上Ruby的“圣经”了,无论是厚度还是内容。它几乎涵盖Ruby语言的各个方面。作者在写书方面是老手,所以,很会照顾不同层面的需要:想了解Ruby,第一部分提供的就是一个简单的教程;想深入语言的细节,第三部分把Ruby语言的方方面面展示了出来……

    让我最有感觉的是第24章《类和对象》,之所以这么说,是因为其中把Ruby的对象模型明明白白的摆在了那里,刚好是近来一直在用功的方面,当然看得酣畅淋漓。相对于语法是形,背后的思想就是神了,而把Ruby的神很好的展现出来的是第23章《Duck Typing》,如果对象能够像鸭子一样走,像鸭子一样叫,那么就可以把它当作鸭子。更准确的说,这章是从静态语言迈入动态语言所需的真正转换。

    如果非要要为这本书找些毛病,我能想到的就是它对Metaprogramming涉及很少,毕竟DSL(Domain Specific Language)已经越来越受到人们的关注,而Ruby在Metaprogramming上的能力恰好可以在DSL上大有作为,ROR已经为我们很好的展示了这一点。

    对于有些人来说,Ruby就是ROR,但实际上,Ruby要比ROR更为广阔。所以,单纯从学习ROR的角度来读这本书,无疑是有些过了。据说有本《Ruby For Rails》很适合为了ROR而学Ruby的人,没读过,仅把把它作为信息列在这。像我们这样通过书来学习新知的人,很重要的就是找对书,因为上错了船而大骂船的人,真正该骂的是自己。

    对于中文版的图书,翻译是一个无可避免的话题。这本书的翻译质量很高,很少出现因为拗口的字句打断阅读的现象。不过,还是有些细微之处存在瑕疵。比如,在346页上,谈及方法定义时,有这样一句话:
        方法定义可能不包含类或模块定义。
    其原文是
        Method definitions may not contain class or module definitions.
    我对这句话的理解是
        方法定义不可以包含类或模块定义。
    如果按照原译文来理解,显然既然方法定义“可能不”包含类或模块的定义,那当然也“可能”包含了。实际上,只要稍微试一下,Ruby就会告诉你这是不可以的。显然,译者对某些技术细节的把握还稍有欠缺。

    喜欢吹毛求疵的我,在看书的同时,给书挑了一些细小的毛病。可喜的是,无论是译者还是编辑都能够对此积极的响应,这样的鼓励使得我有了“变本加厉”的动力。

    《Programming Ruby》是一本不错的好书,但是我们不可能指望任何一本书告诉我们世上的所有事情,《Programming Ruby》也不能,它只是一条通往Ruby世界的桥梁,接下来更多的还是要依靠自己的努力。如果读了这本书发现Ruby还有些吸引自己的地方,那就进入Ruby的世界享受编程的乐趣吧!
    分享到:

    历史上的今天:

    代码阅读 2004-04-03
    引用地址:

    评论

  • 能否针对每一个点说的具体一点,泛泛而谈没意思
    回复killvin说:
    不知道你希望了解什么。以书评来论,写这些内容足够了,更多的内容需要看书来了解。如果能在这么点文字中把一本书所有的内容都介绍了,书就没有价值了。
    2007-04-20 21:00:16