简评《Ruby元编程》

Ruby是一门绝妙的编程语言,这种绝妙体现于三处:

一是Ruby自身充满魔幻色彩的语法(糖);

二是博采众长的rails;

三是这本神奇的Ruby元编程。

每当别人让我推荐编程书的时候,我第一个想到的总是Ruby元编程,无论所学的编程语言是Python,是Ruby,或是JavaScript,这本书总是可以帮你扩宽思维,看到新的编程世界。

Ruby元编程值得每个程序员认真读一读,

不为Ruby而读,为你自己而读。


读这本书需要哪些前置条件?

  1. 了解基本的Ruby语法,如果你不了解Ruby也没关系,有其他编程语言基础的情况下,这只需要额外占用一天的时间而已
  2. 有面向对象编程基础
  3. 喜欢探索新的知识

什么是元编程?

抽象一点的,官方一点的说法就是 “可以编写代码的代码”,

通俗一点解释,就是一些能帮助你少写重复的,枯燥的代码的技巧。

掌握了元编程,编程就不再是 Programme,而是 Magic

希望每个人在读完这本书后都能感悟到:

世上本没有元编程,只有编程。


读完这本书会获得什么?

最明显的一点,读完这本书后,会发现很多业界大牛的代码也没那么难懂了。

也会感叹自己以前居然写了这么多愚蠢代码啊。

也会发现以前觉得如此晦涩的单继承多继承,Mixin这些OOP概念都忽然透彻了。

会觉得本以为深奥的DSL底层机制是如此的平易近人。

最重要的是:充满了黑魔法的编程变的有趣多了。


如何读好这本书?

这本书分为两大部分:

1~6章以一个小故事为线索,细致的讲解了Ruby中常见的魔法。

每一章的例子和习题都值得反复思考,尝试一题多解,然后再往下看书中的讲解,对比自己的解法去改进代码。

7~8章通过讲解ActiveRecord这个复杂的ORM的原理,把前面6章的知识点串起来,织丝成网,这部分难度逐步提高,阅读速度会明显变慢,需要反复写代码去巩固前面学的基础。

9~附录讲解Ruby常见的错误点,常见的Magic总结,用来事后查阅。

阅读这本书,应该重点关注Ruby的面向对象思想和Ruby中的作用域。

Ruby的面向对象是非常特殊的,以至于和其他常见的OOP语言差距巨大,读书的时候应该重点注意这之中的差异。


后话

Ruby元编程虽然行文流畅,内容深刻,但是还是存在一些缺陷的。

比如难度梯度不均匀,部分内容的实例代码晦涩难懂,不过总体来说是一本值得用心刷完一遍甚至两遍的书。

受篇幅限制,这本书很多地方只是点到为止,深层次的原理并没有写出来,如果读完这本书后,对元编程的原理仍有很大的探索欲望,可以试着读一读《计算机程序的构造和解释》

最后,祝大家都能在书中学到自己喜欢的Magic。